从GWT应用程序中检测超级开发模式

Mar*_* A. 4 gwt gwt-super-dev-mode

我想标题说明了一切:

是否有某种标志允许我的GWT应用程序检查它当前是否在超级开发模式下运行(可能是某些东西GWT.isProdMode())?

Ada*_*dam 6

如前所述superdevmode,您可以使用一个属性.

这是一个现实生活中的例子:

  1. 创建一个包含一个方法的类,该方法告诉我们不在 SuperDevMode中:

    public class SuperDevModeIndicator {
        public boolean isSuperDevMode() {
            return false;
        }
    }
    
    Run Code Online (Sandbox Code Playgroud)
  2. 扩展以前的类并重写的方法告诉我们在SuperDevMode:

    public class SuperDevModeIndicatorTrue extends SuperDevModeIndicator {
        @Override
        public boolean isSuperDevMode() {
            return true;
        }
    }
    
    Run Code Online (Sandbox Code Playgroud)
  3. 根据superdevmode属性只使用一个合适的类- 使用延迟绑定 - 将它放在你的*.gwt.xml:

    <!-- deferred binding for Super Dev Mode indicator -->
    <replace-with class="com.adam.project.client.SuperDevModeIndicatorTrue">
      <when-type-is class="com.adam.project.client.SuperDevModeIndicator"/>
      <when-property-is name="superdevmode" value="on" />
    </replace-with>
    
    Run Code Online (Sandbox Code Playgroud)
  4. SuperDevModeIndicator通过延迟绑定实例化类:

    SuperDevModeIndicator superDevModeIndicator = GWT.create(SuperDevModeIndicator.class);
    
    Run Code Online (Sandbox Code Playgroud)
  5. 用它来检查你是否在SuperDevMode中:

    superDevModeIndicator.isSuperDevMode();
    
    Run Code Online (Sandbox Code Playgroud)

瞧!

在这里,您将找到有关延迟绑定的文档.


Tho*_*yer 5

这里有一个悬而未决的问题如何设置公开的访问一样GWT.isProdMode()

同时,如果您真的需要知道,有一个延迟绑定属性superdevmode可以在您的<replace-with><generate-with>规则中使用。