「java获取type」Java获取当前时间
本篇文章给大家谈谈java获取type,以及Java获取当前时间对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
java如何通过文件描述符获取文件类型
主要以下几种方法:
这个MimetypesFileMap类会映射出一个file的Mime Type,这些Mime Type类型是在activation.jar包里面的资源文件中定义的
import javax.activation.MimetypesFileTypeMap;
import java.io.File;
class GetMimeType {
public static void main(String args[]) {
File f = new File("test.gif");
System.out.println("Mime Type of " + f.getName() + " is " +
new MimetypesFileTypeMap().getContentType(f));
// expected output :
// "Mime Type of test.gif is image/gif"
}
}
使用 java.net.URL
警告:这个方法非常慢
与上面所说的匹配后缀名类似。后缀名和mime-type的映射关系被定义在[jre_home]\lib\content-types.properties这个文件中
import java.net.*;
public class FileUtils{
public static String getMimeType(String fileUrl)
throws java.io.IOException, MalformedURLException
{
String type = null;
URL u = new URL(fileUrl);
URLConnection uc = null;
uc = u.openConnection();
type = uc.getContentType();
return type;
}
public static void main(String args[]) throws Exception {
System.out.println(FileUtils.getMimeType(""));
// output : text/plain
}
}
还有一种方式:就是取文件名最后一个“.”后的内容,通过人来判断如
String fileName = "aaa.txt";
String fileType =“txt”//通过方法取出方法类型为
String type = "";
if( fileTyep.equals("txt")){
type = "记事本";
}else if(fileTyep.equals("img")){
type = "img图片";
}
如何获取java泛型的参数类型
一般可以使用反射来获取泛型参数的实际类型,以下是详细代码:
import java.lang.reflect.Field;
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
import java.util.Map;
public class GenericTest {
/*使用反射来获取泛型信息*/
private MapString, Integer score;
public static void main(String[] args) throws SecurityException, NoSuchFieldException {
//Class clazz = GenericTest.class;
ClassGenericTest clazz = GenericTest.class;
//System.out.println(clazz);
Field f = clazz.getDeclaredField("score");
//直接使用getType只对普通类型有效,无法取到泛型参数
Class? a = f.getType();
System.out.println("score的类型是:"+a);
//获得Field实例f的泛型类型
Type gType = f.getGenericType();
//如果gType类型是ParameterizedType的对象
if (gType instanceof ParameterizedType) {
ParameterizedType pType = (ParameterizedType) gType;
//获取原始类型
Type rType = pType.getRawType();
System.out.println("原始类型是:"+rType);
//取得泛型类型参数
Type[] tArgs = pType.getActualTypeArguments();
System.out.println("泛型类型是:");
for (int i = 0; i tArgs.length; i++) {
System.out.println("第"+i+"个泛型类型是:"+tArgs[i]);
}
}else{
System.out.println("获取泛型类型出错!");
}
}
}
输出结果如下:
score的类型是:interface java.util.Map
原始类型是:interface java.util.Map
泛型类型是:
第0个泛型类型是:class java.lang.String
第1个泛型类型是:class java.lang.Integer
java获取泛型class
很多朋友都想知道java怎么获取泛型class?下面就一起来了解一下吧~
获取泛型Class的方法
Class类的方法:
public Type getGenericSuperclass()
方法作用:
如果超类是参数化类型,则返回的 Type 对象必须准确反映源代码中所使用的实际类型参数。如果以前未曾创建表示超类的参数化类型,则创建这个类型。有关参数化类型创建过程的语义,请参阅 ParameterizedType 声明。如果此 Class 表示 Object 类、接口、基本类型或 void,则返回 null。如果此对象表示一个数组类,则返回表示 Object 类的 Class 对象。
ParameterizedType类的方法:
Type[] getActualTypeArguments()
方法作用:返回表示此类型实际类型参数的 Type 对象的数组。
注意,在某些情况下,返回的数组为空。如果此类型表示嵌套在参数化类型中的非参数化类型,则会发生这种情况。
二、获取泛型Class对象
(解析Excel的类代码较多,这里定义几个简单的类记录)
定义获取泛型Class对象的工具类
GenericSuperclassUtil
import java.lang.reflect.ParameterizedType; import java.lang.reflect.Type; public class GenericSuperclassUtil { /* * 获取泛型类Class对象,不是泛型类则返回null */ public static Class getActualTypeArgument(Class clazz) { Class entitiClass = null; Type genericSuperclass = clazz.getGenericSuperclass(); if (genericSuperclass instanceof ParameterizedType) { Type[] actualTypeArguments = ((ParameterizedType) genericSuperclass) .getActualTypeArguments(); if (actualTypeArguments != null actualTypeArguments.length 0) { entitiClass = (Class ) actualTypeArguments[0]; } } return entitiClass; } }
定义BaseService ,用来测试不使用父类时泛型Class的获取
BaseService
public class BaseService { public Class getEntityClass() { return GenericSuperclassUtil.getActualTypeArgument(this.getClass()); } }
测试BaseService.getEntityClass() @Testpublic void testBaseService() { System.out.println(new BaseService ().getEntityClass());// 控制台输出:null }
java获取type的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于Java获取当前时间、java获取type的信息别忘了在本站进行查找喔。