gpt4 book ai didi

java 类属性带有 getter 和 setter,这不应该很常见吗

转载 作者:行者123 更新时间:2023-12-02 10:39:40 26 4
gpt4 key购买 nike

我已经用 Java 进行开发了 5 年多了。

现在,当我开始编写新的类或代码时,我总是从定义类的属性开始。所以我每次都需要点击 eclipse 生成 getter 和 setter,这让我很失望。这是更干净的代码,最终更容易理解。

但我喜欢抽象思考以及使用 OOP 和泛型。因此,要么有特定的原因人们需要使用 Java 原语,要么我们可以在 Java 中创建一个这样的类,以始终具有 getter 和 setter,并且仍然在 Java 类成员的正常使用范围内:

public class Property<Type> implements Getter<Type>,Setter<Type>{

protected Type value;

public Property() {

}


@Override
public <T extends Type> void set(T value) {
this.value = value;
}

@Override
public Type get() {
return value;
}


public String toString() {
return value.toString();
}

}

您仍然可以使用修饰符来限制对您定义的变量的访问。您仍将使用与以下相同的变量声明:

     Class test{

private Property<Number> priv_floatProperty = new Property<Float>();
protected Property<Number> prot_floatProperty = new Property<Float>();
public Property<Number> publ_floatProperty = new Property<Float>();

}

只是想问这个问题,看看其他人对这段代码以及以这种方式编写类的看法。我真的希望我能得到一些关于这段代码和 Java 类设计理论的反馈,

最佳答案

我认为只有在必要时才应该使用泛型。

首先,为了可读性。

其次,您可以快速解决 Java 类型删除问题 ( see )。因此,在比较类(以及使用适当的 .equals/.hashcode 方法)时,您可能会遇到很多问题。我见过一些困难的情况,唯一的解决方案是使用不可读的、复杂的和性能成本的反射......

根据建议,您可以使用Lombok对 getter/setter 进行抽象。

关于java 类属性带有 getter 和 setter,这不应该很常见吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53017077/

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