gpt4 book ai didi

java - 有没有办法从对象和类名初始化变量?(例如通过使用反射)

转载 作者:行者123 更新时间:2023-12-02 05:04:21 25 4
gpt4 key购买 nike

例如:假设有一个 Dog 类,一个 Dalmatian 子类,并且 Dog 类有私有(private)变量字符串名称、品种;现在我在 main 中说:

Dog spot = new Dalamatian();

并自动获得名称 =“spot”和品种 =“Dalmatian”。

最佳答案

获得该品种很容易:

public class Dog {
private final String name;
private final String breed;

protected Dog(String name) {
// Default to using the class name
this(name, getClass().getSimpleName());
}

protected Dog(String name, String breed) {
// Allow subclasses to specify an explicit breed
this.name = name;
this.breed = breed;
}
}

我不相信有任何方法可以在 Java 中推断 spot 。 (您可以在 C# 中执行此操作,假设这是一个字段而不是局部变量,使用 CallerMemberName...)

所以基本上你需要

Dog spot = new Dalmation("spot");

关于java - 有没有办法从对象和类名初始化变量?(例如通过使用反射),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27929507/

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