gpt4 book ai didi

java - 用 HashMap 替换类属性有什么问题吗?

转载 作者:行者123 更新时间:2023-11-29 06:38:08 26 4
gpt4 key购买 nike

只是一个理论上的问题,可能会导致一些设计方面的考虑。如果您要用这个可重用类替换 POJO 会怎样?它可能会避免一些样板代码,但它会带来什么问题?

// Does not include failsafes, guards, defensive copying, whatever...

class MySingleGetterAndSetterClass{

private HashMap<String,Object> myProperties;

public SingleGetterAndSetter( String name ){
myProperties = new HashMap<String,Object>();
myProperties.put( "name", name );
}

public Object get( string propertyName ){
return myProperties.get( propertyName );
}

public Object set( string propertyName, Object value ){
myProperties.put( propertyName, value );
}

}

最佳答案

主要缺点

  • 慢得多
  • 使用更多内存
  • 类型安全性较低
  • 更容易出错
  • 更难维护
  • 更多代码可写/读
  • 更多的线程安全问题(更多的中断方式)和更难实现线程安全。
  • 更难调试,注意字段的顺序可以伪随机排列,相同“类型”的不同对象的顺序不同,使它们更难阅读。
  • 更难重构
  • 很少或不支持代码分析。
  • 不支持代码完成。

顺便说一句,一些动态语言完全按照您的建议进行操作,但它们存在所有这些问题。

关于java - 用 HashMap 替换类属性有什么问题吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17159502/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com