`

Class<T> 和 函数使用不定数目的参数

 
阅读更多

1 class<T> 用于反射之中 表示一定要有一个类型(泛型)

1.1 实现接口时候,必须传入一个泛型
public interface Comparable<T> {
  public boolean compareTo(T other);
}

Comparable 接口包含一个类型参数 T

public class String implements Comparable<String> {
   public boolean compareTo(String other){

   }
}

1.2 这里指定了两个比较的class类型必须一致

public T max(T t1, T t2) {
  if (t1.compareTo(t2) > 0)
    return t1;
  else
    return t2;
}

 

String s = max("moo", "bark");

1.3//Class<T>表示一个类名,T[] T数组的使用

public<T> T[] toArray(Class<T> returnType)
 
FooBar[] fba = something.toArray(FooBar.class);


1.4 //Class<T>表示一个类名

public interface BaseDao<T> { 
    T get();   


public abstract class HibernateBaseDao<T> implements BaseDao<T>{
     private Class<T> entityClass;
}

public class EntityDao extends HibernateBaseDao<Entity> { 
    private Class<T> entityClass;
    public T get() { 
            return entityClass.newInstance(); 
    }
}


 

 

2 Java使用多个参数

mul(int... list,int a) 是错误的,但是mul(int a,int... list)就是正确的。

//

public int mul(int a,int b){
 return a * b;
}

public int mul(int a,int b,int c){
 return a * b * c;
}

//不定数目的参数
public int mul(int... list){
 int result = 0;
 for (int num:list){
  result *= num;
 }
  return result;
}

分享到:
评论

相关推荐

    C# 解析json格式数据为IList

    使用Json.NET解析JSON为IList&lt;T&gt;的基本步骤如下: 1. 引入Json.NET库: ```csharp using Newtonsoft.Json; using Newtonsoft.Json.Linq; ``` 2. 假设你有一个如下的JSON字符串: ```json [ {"name": "Alice...

    System.Lazy 实例的延迟初始化值

    虽然`Lazy&lt;T&gt;`提供了一种强大的机制,但过度使用可能导致代码更难以理解和维护。确保只在确实需要时才使用延迟初始化,特别是对于那些创建成本高的对象。 9. **适用场景**: - 大对象或资源密集型对象的初始化 -...

    Java泛型的用法及T.class的获取过程解析

    entityClass =(Class&lt;T&gt;) ((ParameterizedType) getClass() .getGenericSuperclass()).getActualTypeArguments()[0]; } public T get(Serializable id) { T o = (T) getHibernateTemplate().get(entityClass, ...

    C# ListT ContainsT()的用法小结

    泛型List&lt;T&gt;中有一个比较列表是否已包含对象的方法Contains&lt;T&gt;(),今天在网上搜了一个用法,记录下来,备查。 要用此方法比较我们的自定义对象,首先要有一个比较器, 要注意的是,这里的比较器是实现...

    Java实现的分页工具类

    PageResult&lt;T&gt; result = new PageResult&lt;&gt;(); // 参数校验 if (pageNumber &lt;= 0 || pageSize &lt;= 0) { throw new IllegalArgumentException("页数和每页大小必须大于0"); } try (Connection conn = ...

    Windows 脚本技术参考手册

    &lt;br&gt;&lt;br&gt; 脚本和 Windows 自动化&lt;br&gt; 脚本文件的类型&lt;br&gt; 宿主环境和脚本引擎&lt;br&gt;&lt;br&gt; 创建可由 WSH 使用的脚本&lt;br&gt;&lt;br&gt; 将脚本分成可重复利用的部分&lt;br&gt;&lt;br&gt; Windows 脚本宿主对象模型&lt;br&gt;&lt;br&gt; 运行脚本&lt;br&gt;&lt;br&gt; ...

    Visual C++ 编程资源大全(英文源码 网络)

    28.zip&lt;br&gt;Updated POP3 Wrapper Class&lt;br&gt;更新的POP3类(6KB)&lt;END&gt;&lt;br&gt;106,29.zip&lt;br&gt;Code for "View Source" option in Internet Explorer 1K 实现类似IE的"浏览源代码"功能(4KB)&lt;END&gt;&lt;br&gt;107,30.zip&lt;br&gt;Using the ...

    java反编译工具jad 1.5.8g(可以反编译jdk1.5,1.6)

    For example:&lt;br&gt;&lt;br&gt; jad -o -dtest -sjava *.class&lt;br&gt;&lt;br&gt; (or jad -o -d test -s java *.class, which has the same effect)&lt;br&gt;&lt;br&gt;This command decompiles all .class files in the current directory &lt;br&gt;...

    排序二叉树

    template &lt;class T&gt; class BTree; template &lt;class T&gt; class BSTree:public BTree&lt;T&gt; { public: BSTree(BTreeNode&lt;T&gt; *p=NULL):BTree(p){} //建一棵空树 BSTree(T b[],int m); //以数组a[]初始化树 T minv(); ...

    Visual C++ 编程资源大全(英文控件)

    toolbar_d.zip&lt;br&gt;Docking Toolbars Side-By-Side&lt;br&gt;工具条的停靠(29KB)&lt;END&gt;&lt;br&gt;18,toolbars.zip&lt;br&gt;Toolbars with Tooltips in a CFormView derived class&lt;br&gt;在CFormView派生类中使用带工具提示的工具条(29KB)...

    C#基础全接触

    //执行回调函数&lt;br&gt; }&lt;br&gt; }&lt;br&gt;}&lt;br&gt;&lt;br&gt;//调用&lt;br&gt;class DelegateApp&lt;br&gt;{&lt;br&gt; public static void ActiveConncetionCallback(DBConnection connection) //处理函数&lt;br&gt; {&lt;br&gt; ...&lt;br&gt; }&lt;br&gt;&lt;br&gt; public void ...

    java虚拟机参数

    ava.exe -X 参数信息&lt;br&gt;&lt;br&gt;-X参数是非标准参数。&lt;br&gt; -Xmixed 混合模式执行 (默认)&lt;br&gt; -Xint 只用解释模式执行&lt;br&gt;...&lt;br&gt; -Xrs 减少java虚拟机使用操作系统指令 (见文档)&lt;br&gt; -Xcheck:jni 为JNI函数执行附加的检测

    mysql+连接池+JavaBean实现用户注册登陆系统

    &lt;br&gt;&lt;br&gt;调试环境:&lt;br&gt; xp2&lt;br&gt;mysql5.018&lt;br&gt;jdk1.5.0_04&lt;br&gt;Tomcat5.028&lt;br&gt;&lt;br&gt;&lt;br&gt;数据库设计:&lt;br&gt; 数据库名: mydb, 登录名:root 密码:123&lt;br&gt; &lt;br&gt; users表: * 表示该字段是主键&lt;br&gt;=====================...

    Visual C++ 编程资源大全(英文源码 其它)

    06.zip&lt;br&gt;Convert message ID to a string&lt;br&gt;将消息标志符转换成字符串(4KB)&lt;END&gt;&lt;br&gt;7,07.zip&lt;br&gt;Message Tracer&lt;br&gt;消息跟踪(5KB)&lt;END&gt;&lt;br&gt;8,08.zip&lt;br&gt;A simple profiler class&lt;br&gt;一个简单的轮廓类(5KB)&lt;END&gt;...

    VC6使用word2003生成报表的示例

    &lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;三、使用压缩包的测试程序,按钮二能提供的效果如下图:&lt;br&gt;&lt;br&gt;&lt;br&gt;图一 Word报表效果屏幕截图&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;四、说明:&lt;br&gt;开发环境为:vc6 + sp6 + xp_sdk&lt;br&gt;Word版本:2003企业版&lt;br...

    jive.chm

    &lt;br&gt;&lt;br&gt; 反编译&lt;br&gt; 1 反编译常用工具 &lt;br&gt;&lt;br&gt; 混淆&lt;br&gt; 1 Sun公司的混淆器JADE &lt;br&gt; 2 RetroGuard的使用方法 &lt;br&gt;&lt;br&gt; JVM&lt;br&gt; 1 JVM之class文件结构 &lt;br&gt; 2 JVM 內的資料處理 &lt;br&gt;&lt;br&gt; &lt;br&gt; &lt;br&gt;MVC Framework...

    大数据 java hive udf函数的示例代码(手机号码脱敏)

    在本文中,我们将通过实例代码,详细介绍如何开发和使用 Java Hive UDF 函数。 UDF 函数的实现 首先,我们需要在 Maven 项目中添加依赖项,包括 Hadoop 和 Hive。 Maven 项目的 POM 文件如下所示: ```xml &lt;?xml ...

    Android里List时间升序排序

    这是一个通用的方法,可以对任何实现了`Comparable&lt;T&gt;`接口的集合进行排序。在我们的例子中,`String`类已经实现了`Comparable&lt;String&gt;`接口,因此我们可以直接对`List&lt;String&gt;`进行排序。然而,`Collections.sort()...

    JavaClass二进制文件加密专家

    使用方法&lt;br&gt; 在要分发您的Java应用程序前,使用JavaClass文件加密专家对所有的Class文件或Jar文件进行加密,在您的系统运行参&lt;br&gt;数中加入以下内容:&lt;br&gt; 1.WEB应用程序&lt;br&gt; 在您使用的Java Web Server的启动参数中...

Global site tag (gtag.js) - Google Analytics