java泛型类的使用java代码举例
时间: 2024-05-11 22:13:58 浏览: 8
下面是一个简单的Java泛型类的例子:
```
public class Box<T> {
private T item;
public void setItem(T item) {
this.item = item;
}
public T getItem() {
return item;
}
public static void main(String[] args) {
Box<String> stringBox = new Box<>();
stringBox.setItem("Hello, World!");
String item = stringBox.getItem();
System.out.println(item);
}
}
```
在这个例子中,我们定义了一个泛型类`Box`,它有一个类型参数`T`。`Box`类有两个方法,`setItem`和`getItem`,它们分别用于设置和获取`item`属性。在`main`方法中,我们创建了一个`Box`对象,使用`String`类型作为类型参数。然后我们设置了`item`属性为`"Hello, World!"`,并且获取了`item`属性并打印输出。由于我们在创建`Box`对象时指定了类型参数为`String`,所以`setItem`方法的参数和`getItem`方法的返回值都是`String`类型。
相关问题
java带上限泛型类的使用java代码举例
下面是一个简单的例子,展示了如何使用带有上限泛型类:
```
public class Example<T extends Number> {
private T value;
public Example(T value) {
this.value = value;
}
public T getValue() {
return this.value;
}
public static void main(String[] args) {
Example<Integer> integerExample = new Example<>(10);
System.out.println(integerExample.getValue()); // 输出:10
// 下面这行代码会编译错误,因为String不是Number的子类
// Example<String> stringExample = new Example<>("hello");
}
}
```
在这个例子中,我们定义了一个泛型类 `Example`,它的类型参数 `T` 必须是 `Number` 或其子类。然后我们在构造函数中使用了类型参数 `T`,并在 `getValue` 方法中返回了它。最后,我们创建了一个 `Example<Integer>` 的实例,并输出了它的值。
请注意,如果我们尝试创建一个 `Example<String>` 的实例,编译器会报错,因为 `String` 不是 `Number` 的子类。这就是上限泛型类的作用:它允许我们限制类型参数的类型范围。
泛型类的使用场景举例并实现
泛型类的一个常见使用场景是在集合类中,例如ArrayList<T>、List<T>等。这些类可以使用泛型来支持不同类型的元素。
下面是一个简单的泛型类示例,实现一个存储任意类型元素的栈:
```java
public class MyStack<T> {
private List<T> stack;
public MyStack() {
stack = new ArrayList<>();
}
public void push(T element) {
stack.add(element);
}
public T pop() {
if (stack.isEmpty()) {
throw new NoSuchElementException("Stack is empty");
}
return stack.remove(stack.size() - 1);
}
public boolean isEmpty() {
return stack.isEmpty();
}
public static void main(String[] args) {
MyStack<Integer> intStack = new MyStack<>();
intStack.push(1);
intStack.push(2);
System.out.println(intStack.pop()); // output: 2
MyStack<String> strStack = new MyStack<>();
strStack.push("Hello");
strStack.push("World");
System.out.println(strStack.pop()); // output: World
}
}
```
这个泛型类中,T表示元素的类型。在构造器中,我们使用ArrayList来存储元素。push()方法将元素添加到栈中,pop()方法弹出栈顶元素并返回,isEmpty()方法判断栈是否为空。在main()方法中,我们分别创建了一个存储整数和字符串的栈,并向其中添加元素。