java(1)编写静态泛型方法t1,有一个参数t,并在方法体内输出t (2)编写非静态泛型方法t2,有一个参数t,并在方法体内输出t (3)在main方法中分别调用泛型方法t1,t2
时间: 2024-03-26 20:41:39 浏览: 11
以下是实现代码:
```java
public class GenericMethods {
// 静态泛型方法
public static <T> void t1(T t) {
System.out.println(t);
}
// 非静态泛型方法
public <T> void t2(T t) {
System.out.println(t);
}
public static void main(String[] args) {
// 调用静态泛型方法
GenericMethods.<String>t1("Hello, world!");
// 调用非静态泛型方法
GenericMethods gm = new GenericMethods();
gm.t2(123);
}
}
```
输出结果为:
```
Hello, world!
123
```
相关问题
Java中一个类接收泛型T,它的静态方法如何声明泛型
静态方法需要在方法声明上添加泛型类型参数,例如:
```java
public class MyClass<T> {
public static <T> void myStaticMethod(T param) {
// do something
}
}
```
在上面的例子中,`<T>`是静态方法`myStaticMethod`的泛型类型参数,它可以用来限定参数类型或返回值类型。注意,静态方法的泛型类型参数与类的泛型类型参数没有任何关系,它们是独立的。
帮我使用Java语言编写出一个泛型统计方法
好的,以下是一个使用Java语言编写的泛型统计方法的示例:
```java
public class Statistics<T extends Number> {
private List<T> data;
public Statistics(List<T> data) {
this.data = data;
}
public double getAverage() {
double sum = 0.0;
for (T value : data) {
sum += value.doubleValue();
}
return sum / data.size();
}
public T getMinimum() {
T minimum = data.get(0);
for (T value : data) {
if (value.doubleValue() < minimum.doubleValue()) {
minimum = value;
}
}
return minimum;
}
public T getMaximum() {
T maximum = data.get(0);
for (T value : data) {
if (value.doubleValue() > maximum.doubleValue()) {
maximum = value;
}
}
return maximum;
}
public double getStandardDeviation() {
double average = getAverage();
double sum = 0.0;
for (T value : data) {
sum += Math.pow(value.doubleValue() - average, 2.0);
}
return Math.sqrt(sum / data.size());
}
}
```
这个泛型类可以接受任何继承自Number类的类型作为数据,包括Integer、Double、Float等。您可以通过创建一个Statistics对象并传入一个包含数据的列表,来计算平均值、最小值、最大值和标准差等统计信息。