正文
13-spring学习-class类型表达式
小程序:扫一扫查出行
【扫一扫了解最新限行尾号】
复制小程序
【扫一扫了解最新限行尾号】
复制小程序
Class表达式
spring中对于class反射机制也有自己的处理。
1,class:: 使用T(类名)的形式可以取得一个指定泛型类型的Class对象 。
范例:
package com.Spring.ELDemo;
import org.springframework.expression.EvaluationContext;
import org.springframework.expression.Expression;
import org.springframework.expression.ExpressionParser;
import org.springframework.expression.spel.standard.SpelExpressionParser;
import org.springframework.expression.spel.support.StandardEvaluationContext; public class TestSimple2 { public static void main(String[] args) { ExpressionParser parser=new SpelExpressionParser();
Expression exp=parser.parseExpression("T(String)");
EvaluationContext context=new StandardEvaluationContext();
System.out.println(exp.getValue(context));
}
}
运行结果:
class java.lang.String
计算结果:Class<String>。
2,静态属性:如果调用的静态属性则使用:“T(类).静态属性名称”。
Expression exp=parser.parseExpression("T(Integer).MAX_VALUE");
运行结果:
3,静态方法
例如在Integer类里面有一个parseInt()的方法。此方法可以接收一个 字符串 ,同时返回一个 Int型数据 。
范例:
Expression exp=parser.parseExpression("T(Integer).parseInt('123123')");
运行结果:
4,无参构造实例化
虽然给出了静态操作,但是严格来说使用最多的情况一定是类产生实例化对象,此处依然可以使用同样的方式完成,可以直接使用“ new 类型() ”的方式实例化对象。
范例:实例化Date对象。
package com.Spring.ELDemo;
import org.springframework.expression.EvaluationContext;
import org.springframework.expression.Expression;
import org.springframework.expression.ExpressionParser;
import org.springframework.expression.spel.standard.SpelExpressionParser;
import org.springframework.expression.spel.support.StandardEvaluationContext; public class TestSimple2 { public static void main(String[] args) { ExpressionParser parser=new SpelExpressionParser();
Expression exp=parser.parseExpression("new java.util.Date()");
EvaluationContext context=new StandardEvaluationContext();
System.out.println(exp.getValue(context));
}
}
运行结果:
但是现在都是调用无参构造,如何调用有参构造。
5,有参构造实例化
Expression exp=parser.parseExpression("new String('hello')");
运行结果:
6,Instanceof:在对象的开发过程中,也可以进行实例对象类型的判断。
使用方式: 对象实例 instanceof T(类)
范例:判断一个字符串是否String的实例。
package com.Spring.ELDemo;
import org.springframework.expression.EvaluationContext;
import org.springframework.expression.Expression;
import org.springframework.expression.ExpressionParser;
import org.springframework.expression.spel.standard.SpelExpressionParser;
import org.springframework.expression.spel.support.StandardEvaluationContext; public class TestSimple2 { public static void main(String[] args) { ExpressionParser parser=new SpelExpressionParser();
Expression exp=parser.parseExpression("'hello' instanceof T(String)");
EvaluationContext context=new StandardEvaluationContext();
System.out.println(exp.getValue(context));
}
}
注意: 上面的String一定要加上T(),否则就会报错 。
运行结果:
利用字符串完整实现类反射机制的各种操作,它的各种操作只能处理很简单的功能。