`
阅读更多

 

Introduction

For maximum efficiency, GWT compiles your Java source into a monolithic script. Now gwt-ent provide a reflection implement by gwt code generator mechanism.

This Framework support

  1. Class http://code.google.com/p/gwt-ent/source/browse/trunk/gwtent/src/main/java/com/gwtent/reflection/client/ClassType.java
  2. Field http://code.google.com/p/gwt-ent/source/browse/trunk/gwtent/src/main/java/com/gwtent/reflection/client/Field.java
  3. Method http://code.google.com/p/gwt-ent/source/browse/trunk/gwtent/src/main/java/com/gwtent/reflection/client/Method.java
  4. Constructor http://code.google.com/p/gwt-ent/source/browse/trunk/gwtent/src/main/java/com/gwtent/reflection/client/Constructor.java
  5. Metedata http://code.google.com/p/gwt-ent/source/browse/trunk/gwtent/src/main/java/com/gwtent/reflection/client/HasMetaData.java
  6. Annotation http://code.google.com/p/gwt-ent/source/browse/trunk/gwtent/src/main/java/com/gwtent/reflection/client/HasAnnotations.java

 

How to use

# add Annotation Or Reflection Marker interface into your pojo class

@Reflectable 
public class TestReflection{ 
} 
 
public class TestReflection implements Reflection{ 
} 
 
@Reflect_Domain 
public class TestReflection{ 
}

# get ClassType.

ClassType classType = TypeOracle.Instance.getClassType(TestReflection.class);

For example:

public void testReflection(){ 
    TestReflection test = new TestReflection(); 
    ClassType classType = TypeOracle.Instance.getClassType(TestReflection.class); 
     
    test.setString("set by code"); 
    System.out.println("after SetByCode:" + test.getString()); 
    System.out.println("after SetByCode:" + classType.invoke(test, "getString", null)); 
     
    classType.invoke(test, "setString", new Object[]{"set by invoke"}); 
    System.out.println("after SetByInvoke:" + classType.invoke(test, "getString", null)); 
  } 
}

The output is :

after SetByCode:set by code 
after SetByCode:set by code 
after SetByInvoke:set by invoke

Control you javascript size

GWTENT provide you more power to control how much reflection information created.

The Class Scope

You can control whether have:
  1. Class Annotation
  2. Fields
  3. Methods
  4. Constructors
  5. Field and Method Annotations
  6. Relation Types(The field type, the return type of method, the type of Parameters)
  7. Super Classes ( all the super classes of this class will generate reflection information)
  8. Assignable Classes (all assignable classes. if annotate to a class, this is mean All subClasses will generate reflection information; if annotate to a interface, then all implement classes will generate reflection information; if annotate to an annotation, then all types annotated by this annotation will generate reflection information)
Click Here For more Information

The Field/Method Scope

You can control whether have:
  1. Annotations
  2. Field Type
  3. Method Return Type
  4. Method Parameter Type
Click Here For more Information

The TestCase

ReflectionTestCase

Understand Reflection Classes

http://code.google.com/p/gwt-ent/source/browse/trunk/gwtent/src/main/java/com/gwtent/reflection/client/

分享到:
评论

相关推荐

    GWT反射

    【标题】:“GWT反射”是指在Google Web Toolkit (GWT)环境中利用Java的反射机制来操作类和对象的一种技术。GWT是一个开源框架,它允许开发者使用Java语言编写客户端Web应用,然后编译成高效的JavaScript代码运行在...

    gwt反射 http://code.google.com/p/google-gin/wiki/GinTutorial

    标题中的“gwt反射”指的是Google Web Toolkit (GWT) 中的反射机制。GWT 是一个用于构建富互联网应用程序(RIA)的开放源代码Java框架,它允许开发者使用Java编程语言来编写前端应用,然后通过编译器将Java代码转换...

    GWT Reflection-开源

    在传统的GWT应用中,由于JavaScript引擎的限制,反射功能是不可用的,但GWT反射库解决了这个问题,使开发者可以充分利用Java的动态性。 GWT反射库的工作原理是将Java的反射API转换为JavaScript代码,这样在客户端...

    GWT开发手册.doc

    - **反射与垃圾回收**:GWT不支持Java的反射机制,以提高性能和减少复杂性。JavaScript引擎的单线程性质使得GWT中的`synchronized`关键字无效,同时没有垃圾回收机制,开发者需手动管理内存。 3. **运行时库支持**...

    GWT开发者手册(中文版)

    - **反射与序列化**:GWT不支持Java的反射机制,也不支持标准的序列化机制,而是提供了一个RPC机制来处理对象的序列化和反序列化。 - **垃圾回收**:由于JavaScript环境的限制,GWT无法提供与Java类似的垃圾回收机制...

    GWT初学者手册

    5. **反射**:GWT不支持Java的反射机制,但提供GWT.getTypeName(Object)来获取对象的类名。 6. **无用对象清理**:JavaScript不支持垃圾回收,GWT无法在Web模式下清理JAVA对象。 7. **严格浮点运算**:GWT不支持...

    gwt 开发手册轻松入门gwt

    然而,某些特性在JavaScript中无法完全实现,如long类型被映射为double,多线程同步关键字`synchronized`仅作标记,反射机制受限,以及严格浮点运算不受支持。 2. **运行时库**:GWT模拟了Java运行时环境的一部分,...

    GWT开发者手册v2

    5. **反射与动态类型**:GWT不支持Java的反射机制,以提高效率和优化编译结果。`GWT.getTypeName(Object)`提供了一种获取对象类名的方法。 6. **无用对象清理**:JavaScript没有垃圾回收机制,因此GWT在Web模式下...

    GWT开发者手册_v2

    - **反射**:为了提高性能,GWT 将 Java 源代码编译为单一集成脚本,不支持类的动态装载或反射。尽管如此,可以通过 `GWT.getTypeName(Object)` 查询对象的类名。 - **垃圾回收**:由于 JavaScript 不支持垃圾回收,...

    GWT开发者手册

    - **反射**:GWT不支持Java的反射机制,但可以通过GWT.getTypeName(Object)获取对象的类名。 - **无用对象清理**:GWT不支持JavaScript的垃圾回收,因此开发者需要手动管理客户端对象。 - **浮点数处理**:GWT不...

    GWT学习课件

    4. **反射**: 不支持反射机制,以提高执行效率。 5. **对象清理**: 不支持WEB模式下的Java对象清理。 6. **浮点运算**: 不支持 `strictfp` 关键字,对于需要高精度的浮点运算,建议在服务端进行处理。 7. **正则...

    GWT应用测试工具GwtMockito.zip

    使用 GWTTestCase 测试 GWT 应用会比纯 Java 测试慢,而且不能使用基于反射的工具,比如模拟测试框架。如果尝试使用常规测试示例,那么会遇到这个错误:ERROR: GWT.create() is only usable in client code!...

    gwtmockito:更好的GWT单元测试

    使用GWTTestCase测试GWT应用程序可能会很痛苦-比使用纯Java测试要慢,并且您不能使用基于反射的工具(例如模拟框架)。 但是,如果您尝试使用正常的测试用例来测试窗口小部件,则可能会遇到以下错误: ERROR: GWT....

    GWT-Dagger2-Demo:带有 GWT 的 Google Dagger2 演示项目

    Dagger 2通过注解驱动的编译时处理,生成所需的依赖关系代码,提供高效且无反射的依赖注入。 **GWT与Dagger 2的结合** 在GWT-Dagger2-Demo项目中,Dagger 2被用来管理GWT应用中的依赖关系。通过使用Dagger 2,...

    gwt-test-utils:gwt-test-utils是一个Java框架,允许以高效,简便的方式测试GWT客户端代码

    这意味着您可以不受限制地使用任何Java工具:JUnit,反射,Easymock,Mockito等。 编写测试如下所示: @Testpublic void clickOnButtonShouldDisplayMessageInLabel() { // Arrange SampleView view = new ...

    gwtbean:一个使用 JavaScriptObject 的概念,如 Spring BeanWrapper

    Gwt-Bean 是一个针对 Google Web Toolkit (GWT) 平台设计的库,它借鉴了 Spring 框架中的 BeanWrapper 概念,旨在帮助开发者更方便地处理 Java 对象与 JavaScriptObject 之间的交互。在 GWT 开发中,由于浏览器端...

    Google Web Toolkit

    - **反射**:为了提高效率,GWT将Java源代码编译成单一的脚本,并不支持动态加载类。 ### 三、GWT运行时库 GWT的运行时库模拟了Java运行时库的一个相关子集,提供了在Web环境中执行Java程序所需的功能。这包括但不...

Global site tag (gtag.js) - Google Analytics