Class<T> 和 函数使用不定数目的参数
2016-12-02 15:47
701 查看
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;
}
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;
}
相关文章推荐
- error: 函数调用缺少参数列表;请使用“&BinTree<char>::_PrintNode”创建指向成员的指针
- System.ArgumentException: 回发或回调参数无效。在配置中使用 < pages enableEventValidation="true"/>
- Struts里面<html:link>的使用方法以及加多个参数的方法
- 可变参数列表的宏和<stdarg.h>实现函数的可变参数列表
- System.ArgumentException: 回发或回调参数无效。在配置中使用 < pages enableEventValidation="true"/> 或在页面中使用 <% @ Page
- 如何在前台使用<%#eval( )%> 传递多个参数
- JSP中使用哪个标签允许向<include/>标签传递参数
- 使用泛型类型System.Collections.Generic.Icomparer &lt;T&gt; 需要一个类型参数
- 在xml文件里使用<fragment>报android.view.InflateException: Error inflating class fragment
- Scala类型参数中协变(+)、逆变(-)、类型上界(<:)和类型下界(>:)的使用
- C#中的匿名函数使用,类名<T>
- <python>Python的函数参数传递:传值?引用?
- 使用action属性接收参数<a href="user/user!add?name=a&age=8">添加用户</a>
- 为什么使用百度编辑器时 前台代码不能放在 class<table >中 如果放进去的话,会发生 百度编辑的内容显示不出来
- 关于函数适配器less< Type>以及bind1st和bind2nd的使用
- 使用<appSettings>元素定义配置参数
- 回发或回调参数无效。在配置中使用 <pages enableEventValidation="true"/>
- 使用此参数设置的访问点: ->S7ONLINE 函数调用 SRMD_Set(..) 中出现错误
- 实战c++中的vector系列--使用sort算法对vector<unique_ptr<string>>进行排序(sort函数出错“应输入 2 个参数,却提供了 3 个)
- template<class T>函数模板