You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何缩短这段基于字符串输入返回Java实例的代码长度?

缩短PersonA类代码的几种方案

我来给你几个能缩短这段Java代码的方案,既能保留原有的属性获取功能,还能让代码更简洁:

方案1:兼顾可读性与简洁性

这个方案用Map接口代替具体的HashMap实现(降低耦合),用Class.cast()替代强制转换(更安全,避免unchecked警告),同时优化了代码结构:

public class PersonA {
    private final Map<String, Object> attrs = new HashMap<>();
    public <T extends PersonAItem> T attr(String key, Class<T> type) {
        return type.cast(attrs.get(key));
    }
}

方案2:极致压缩(最短代码长度)

如果追求极致短的代码,可以合并代码行、缩短变量名(牺牲一点可读性,但功能完全不变):

public class PersonA {
    private final Map<String,Object> attrs=new HashMap<>();
    public <T extends PersonAItem> T attr(String k,Class<T> t){return t.cast(attrs.get(k));}
}

补充:使用示例的小修正

原使用示例里的System.out.printLn是拼写错误,应该是System.out.println(注意是小写的l),修正后的示例:

public static void main(String[] args) {
    PersonA personA = new PersonA();
    String computerName = personA.attr("computer", Computer.class).getComputerName();
    System.out.println("person A has a " + computerName + " computer!");
}

内容的提问来源于stack exchange,提问作者user7148508

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 07:32:39