gpt4 book ai didi

Java接口(interface)最佳实践

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:43:28 26 4
gpt4 key购买 nike

我有以下两个对象

public class ObjectA {
int id ;
String name;
}

public class objectB {
Long id;
String name;
}

我希望能够创建一个将由这两个对象实现的接口(interface)“AnObject”。这个界面会是什么样子?

public interface AnObject {
public <type?> getId() ;
public String getName();
}

ID 的 getter 中的类型应该是什么?

最佳答案

首先不要命名为Object . Object 是 Java 的所有其他类的隐式基类。从技术上讲,您可以将接口(interface)命名为 Object只要你不把它放在包裹里java.lang ,但这会产生很大的误导。

getId() 提供不同的返回类型在ObjectAObjectB , 使用泛型:

public interface MyObject<T> {
T getId();
String getName();
}

public class ObjectA implements MyObject<Integer> {
@Override
public Integer getId() {
return 0;
}

@Override
public String getName() {
return "A";
}
}

public class ObjectB implements MyObject<Long> {
@Override
public Long getId() {
return 0;
}

@Override
public String getName() {
return "B";
}
}

如果getId()总是返回一个数字,你也可以定义 MyObject作为MyObject<T extends Number> .请注意,您不能使用 native 类型 intlong使用泛型;你必须使用盒装类型 IntegerLong .

关于Java接口(interface)最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31455096/

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