public class StringPool {
public static void main(String[] args) {
String s1 = "Cat";// will create reference in string pool of heap memory
String s2 = "Cat";
String s3 = new String("Cat");//will create a object in heap memory
// Using == will give us true because same reference in string pool
if (s1 == s2) {
System.out.println("true");
} else {
System.out.println("false");
}
// Using == with reference and Object will give us False
if (s1 == s3) {
System.out.println("true");
} else {
System.out.println("false");
}
// Using .equals method which refers to value
if (s1.equals(s3)) {
System.out.println("true");
} else {
System.out.println("False");
}
}
}
---- Выход ----- true false true
Если Ваше согласное, чтобы вынудить пользователя также установить другое приложение, Вы могли бы записать маленький C# или сервис окон C++, который просто открывает Socket, который предоставляет некоторый протокол для доступа к реестру. Затем в AIR можно использовать класс Сокета, чтобы отправить сообщения службе C#, которая возвратила бы результаты приложению AIR.
Когда загрузки приложения, которые можно попытаться подключить к Сокету, и если соединение отклоняется, Вы могли бы предложить пользователю загружать/устанавливать сервис.
Что касается прямого доступа к реестру я вполне уверен, Adobe не позволил бы это от AIR.
Если Вы можете я быть испуганным.
Почему Вы были бы испуганы? Воздух является настольной платформой, и доступ наличия к API ОС (таким как доступ к реестру) имеет много смысла.
Однако это не поддерживается теперь (и поскольку Adobe, кажется, очень централен Mac, я сомневаюсь, что это будет когда-либо добавляться).
Я обосновался на захвате пользовательского имени с названия пользовательского каталога
Используя File.userDirectory.name будет работать в большинстве случаев, но он походит на очень хрупкую реализацию, он полагается на ОС, поддерживающую конвенцию наличия имени пользователя как их каталог. Я могу думать о нескольких возможных вещах, которые могли бы повредить его (играющий с TweakUI и т.д.).
Вы пытаетесь определить, является ли пользователь администратором или нет?
Раз так Вы могли выпускник имя пользователя с "File.userDirectory.name".
И я думаю, чтобы выяснить, является ли пользователь администратором, Вы могли бы, вероятно, попытаться получить доступ к файлу, который требует прав администратора (возможно, пытаются писать файл в Windows/System32). Если сбои доступа к файлу, Вы могли бы, вероятно, предположить, что пользователь находится под Ограниченной учетной записью.
Вы могли теоретически изменить фактические файлы реестра, но я буду высоко препятствовать той идее.
Будьте очень осторожны, если Вы решаете создать сервер сокета, который прислушивается к командам реестра. Вы потенциально создаете дыру в системе безопасности, и персональные брандмауэры пользователей могут помешать с точки зрения удобства использования.
Немного поздно, но я получил желание от клиента прочитать некоторые значения из реестра, когда проект был почти завершен. Если бы таких желаний было больше, я бы никогда не выбрал AIR. Но я нашел хорошее расширение от FluorineFx, и, расширив его, я теперь могу читать строковые и двойные слова из реестра. Только для Windows: http://aperture.fluorinefx.com/