相关疑难解决方法(0)

什么是原始类型,为什么我们不应该使用它?

问题:

  • 什么是Java中的原始类型,为什么我经常听说不应该在新代码中使用它们?
  • 如果我们不能使用原始类型,它有什么替代方案,它是如何更好的?

java generics raw-types

617
推荐指数
13
解决办法
20万
查看次数

Java Enum定义

我以为我很了解Java泛型,但后来我在java.lang.Enum中遇到了以下内容:

class Enum<E extends Enum<E>>
Run Code Online (Sandbox Code Playgroud)

有人可以解释如何解释这个类型参数?用于提供可以使用类似类型参数的其他示例的加分点.

java generics enums crtp

146
推荐指数
3
解决办法
2万
查看次数

为什么通用类型信息在第二次调用后丢失?

我正在用 Java 泛型做一些实验,遇到了一些奇怪的事情,希望你能帮我弄清楚!(此代码不会仅用于玩泛型)

public abstract class A {
    abstract static class Builder<T extends Builder> {
        T obj;

        public T builder(){
            return obj;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

现在假设我们定义了 B 类,它以两种不同的形式实现了 A 类。一次使用泛型,另一次不使用泛型。

public class B extends A {
    public static class Builder extends A.Builder<Builder> {

    }
}
Run Code Online (Sandbox Code Playgroud)

现在,如果我使用上面的代码,如下所示:

new B.Builder().builder().builder()
Run Code Online (Sandbox Code Playgroud)

两种builder()方法的返回类型都是,B.Builder但如果我这样定义 B:

public class B extends A {
    public static class Builder<T> extends A.Builder<Builder> {
        
    }
}
Run Code Online (Sandbox Code Playgroud)

并像new B.Builder<String>().builder().builder()第一个builder()方法返回类型一样使用它,B.Builder但第二个builder()返回类型是A.Builder() …

java generics

1
推荐指数
1
解决办法
62
查看次数

标签 统计

generics ×3

java ×3

crtp ×1

enums ×1

raw-types ×1