java – 为什么使用printf(“%s”)传递给泛型方法的参数?
发布时间:2020-05-24 19:00:01 所属栏目:Java 来源:互联网
导读:package genericMethods;public class OverloadedMethods { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Integer[]
package genericMethods;
public class OverloadedMethods {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Integer[] integerArray = {1,2,3,4,5};
Double[] doubleArray = {1.0,2.0,3.0,4.0,5.0};
Character[] charArray = {'a','b','c','d'};
System.out.println("A has: ");
printArray(integerArray);
System.out.println("B has: ");
printArray(doubleArray);
System.out.println("C has: ");
printArray(charArray);
}
public static <T> void printArray(T[] array)
{
for(T element : array)
System.out.printf("%s ",element);//why use %s instead of others?
System.out.println();
}
}
我的问题是方法printArray()不知道要打印出什么类型的数据,并且似乎%d将在运行时发生错误 – 但不仅仅是String的%s? 解决方法问题是你不知道什么类型的“元素”将是.在您的示例中,它可以是Integer,Double或Character.在这种情况下,您不能使用%d或%lf,因为这些不适用于非Integer(对于%d)或Double(对于%lf)的类型.%s实际上适用于所有这些,因为所有Object类型都有.toString(),因此它们都可以转换为字符串进行打印. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 在java枚举中你可以拥有的成员数限制是多少?
- java – CompareTo可能返回0,替代TreeSet / TreeMap
- java 使用JDBC构建简单的数据访问层实例详解
- Java:如何防止EntityResolver中的’systemId’#resolveEnt
- java – 贾斯珀报告PDF格式的字符编码
- java – 静态变量vs Volatile
- Android SlidingMenu实现侧滑栏效果
- java – 为什么JConsole上的某些方法被禁用
- java – AngularJS Spring MVC具有安全性 – 从哪里开始?
- 为什么无法使用java中的方法Integer.valueOf()解析从文本中
