关于泛型介于返回值同static之间的意义

直接放出代码, 很简单

@Test
public void getGenericTest1() {
    String str = getObject("string");
    AssertUtils.assertEquals(str, "字符串", "结果错误");
}
@Test
public void getGenericTest2() {
    boolean b = getObject("boolean");
    AssertUtils.assertTrue(b, "结果错误");
}
@Test
public void getGenericTest3() {
    User user = getObject("user");
    AssertUtils.assertNotNull(user, "结果为null");
}

@SuppressWarnings("unchecked")
public static <E> E getObject(String key) {
    Map<String, Object> r = new HashMap<String, Object>();
    // 放几种不同类型的数据进行测试用
    r.put("string", "字符串");
    r.put("boolean", false);
    r.put("user", new User());
    for (Map.Entry<String, Object> entry: r.entrySet()) {
        if (key.equals(entry.getKey())) {
            return (E) entry.getValue();
        }
    }
    return null;
}
### Java 方法返回值的定义使用 在 Java 中,方法允许指定一个或多个类参数,在这些参数的帮助下可以定义灵活的方法签名。对于带有返回值方法而言,其声明方式是在常规方法之前加上类形参部分 `<T>` 或者其他字母表示的占位符来代表未知的具体数据类。 #### 定义带返回值方法 当希望从方法内部返回某种特定的数据结构而不想限定该结构内的元素为何种确切类别时,则可采用如下形式: ```java public class Example { // 声明了一个名为 getDefaultValue 的静态方法, T 表示任意类 public static <T> T getDefaultValue() { return null; // 这里简单地返回null作为默认值 } } ``` 此段代码展示了最基础的形式——即不依赖任何输入仅提供一种通用化的输出方案[^1]。 如果想要使返回的对象更加有意义而不是仅仅`null`的话,那么就需要依据实际应用场景调整逻辑并传入必要的信息以构建实例对象。 #### 结合参数使用的方法案例 下面的例子说明了如何通过传递不种类的实际参数给定形参从而获得相应类的返回结果: ```java import java.util.ArrayList; import java.util.List; public class GenericMethodExample { // 此处<T>表明这是一个接受单个类参数T的方法 public static <T> List<T> createList(T element){ ArrayList<T> list = new ArrayList<>(); if (element != null) { list.add(element); } return list; } public static void main(String[] args) { // 调用createList 方法创建Integer 类列表 List<Integer> intList = createList(10); // 创建String 类列表 List<String> stringList = createList("hello"); System.out.println(intList.get(0)); // 输出: 10 System.out.println(stringList.get(0)); // 输出: hello } } ``` 上述程序片段中 `createList()` 是一个典工厂模式实现,它接收一个参数并在执行期间动态决定了最终产出容器所容纳实体的确切性质[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值