static constants返回Flex中特定类的实例?

时间:2010-04-29 02:56:19

标签: flex

所以这就是我的意思。 假设我有一个类ErrorMessages,它将我的所有错误消息保存为静态常量。所以我可以像ErrorMessages.PASSWORD_INVALID或ErrorMessage.PASSWORD_TOO_SHORT一样访问它们。我想知道是否有可能有单独的类来保存这些常量的子集并访问它们,如ErrorMessages.PASSWORD.INVALID或ErrorMessages.PASSWORD.TOO_SHORT等。 这样我可以使用更结构化的静态结构,并且可以更轻松地使用自动完成功能。 我尝试了几种不同的方式,无法弄清楚这是否可行..

3 个答案:

答案 0 :(得分:2)

将它们声明为静态类中的const对象 - 但是你不会自动完成它们。

public class ErrorMessages
{
  public static const PASSWORD:Object = {
     INVALID:"invalid password",
     TOO_SHORT:"minimum 6 chars required",
     TOO_LONG:"100 chars: r u sure?"
  };
  public static const FILE:Object = {
     NOT_FOUND:"No such file",
     READ_ONLY:"it is readonly",
     SOMETHING_ELSE:"something else"
  };
}

trace(ErrorMessages.PASSWORD.INVALID);

如果自动完成很重要,请创建一个专用的com.domain.errors包,并为该包中的不同类别的错误(如PASSWORD,FILE等)声明不同的类。现在在适当的时候在这些类中声明公共静态常量。

答案 1 :(得分:0)

或者如果要保留单个类,可以在Error类中定义类。您可能希望这些文本来自属性文件。因此,您可以使用resourceManager实例并从特定资源包中获取文本。

- http://riageeks.com

答案 2 :(得分:0)

这就是我最终要做的事情

package com.domain.data.type {
  public class ErrorMessages {
    public static function get PASSWORD:PasswordErrorMessages { return new PasswordErrorMessages(); }
    }
}
class PasswordErrorMessages {
  public function get INVALID():String  { return "invalid password"; }
}

这样我就可以获得我想要的行为:具有自动完成功能的ErrorMessages.PASSWORD.INVALID。它并不像我希望的那样干净......但我想这会做的。