Java 避免在不定义类的情况下实例化泛型
我定义了这个类Java 避免在不定义类的情况下实例化泛型,java,lombok,Java,Lombok,我定义了这个类 @Data @AllArgsConstructor @EqualsAndHashCode(of = { "id" }) @Builder(toBuilder=true) @Wither @JsonInclude(NON_NULL) public class Hostel<T> { } @数据 @AllArgsConstructor @EqualsAndHashCode(of={“id”}) @生成器(toBuilder=true) @枯萎 @JsonInclude(
@Data
@AllArgsConstructor
@EqualsAndHashCode(of = { "id" })
@Builder(toBuilder=true)
@Wither
@JsonInclude(NON_NULL)
public class Hostel<T> {
}
@数据
@AllArgsConstructor
@EqualsAndHashCode(of={“id”})
@生成器(toBuilder=true)
@枯萎
@JsonInclude(非空)
公务舱旅馆{
}
我想知道,如果不这样定义类,是否可以避免实例化
new Hostel<>();
newhotel();
并始终强制实例化,如:
new Hostel<GuestAndHouse>();
newhotel();
您不能禁止此语法变体。比如这个
Hostel h=新的Hostel()代码>
这只是一种简化的语法:
Hostel h=新的Hostel()代码>
但这是同一件事。类型变量T
仍在此处定义。编译器可以从上下文推断类型,因此您无需将其写下来
这是另一件事,而不是像这样的原始类型:
Hostel h=新的Hostel()代码>
这里没有给类型变量一个实类型。这是应该避免的,但是Java编译器允许它与Java中出现泛型之前编写的代码向后兼容(泛型在1.5中已经引入)。您是在试图避免菱形运算符,还是只是试图使其成为特定类型范围的泛型参数?