小编Ced*_*tay的帖子

Android 4.2过滤掉CHANGE_CONFIGURATION权限?

我遇到了一个奇怪的问题,我得到了一个允许在Android设备(字体大小设置器)上自由更改字体大小的应用程序.它使用内省来调用一些内部的Android apis.要进行此调用,需要以下权限:android.permission.CHANGE_CONFIGURATION.它在Android 4.0下运行起来就像一个魅力,在它不再起作用的情况下高达4.2.挖掘日志我发现我无法更新字体大小,因为它错过了这个权限.为了检查有效权限,我在检查与我的应用程序对应的PackageInfo时得到了这些权限

requestedPermissions = {java.lang.String[2]@830038778728}
    [0] = {java.lang.String@830038778760}"android.permission.CHANGE_CONFIGURATION"
    [1] = {java.lang.String@830038778896}"android.permission.WRITE_SETTINGS"
requestedPermissionsFlags = {int[2]@830038779016}
    [0] = 1
    [1] = 3
Run Code Online (Sandbox Code Playgroud)

有人对正在发生的事情或任何解决方法的想法有任何线索吗?非常感谢您阅读我.

每个请求,AndroidManifest.xml文件

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="fr.gatay.android.fss"
          android:versionCode="1"
          android:versionName="1.0">
    <uses-sdk android:minSdkVersion="14"/>
    <uses-permission android:name="android.permission.CHANGE_CONFIGURATION" />
    <uses-permission android:name="android.permission.WRITE_SETTINGS"/>
    <application android:label="@string/app_name" android:icon="@drawable/app_icon">
        <activity android:name=".MainActivity"
        android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>
    </application>
</manifest>
Run Code Online (Sandbox Code Playgroud)

android

6
推荐指数
2
解决办法
1万
查看次数

Java HashMap找不到密钥,但它应该

我的应用程序中出现了一个奇怪的问题,我将快速解释全局架构,然后深入解释我的问题.

我使用一个服务来填充HashMap<DomainObject,Boolean>来自我的数据库(JPA驱动)的数据,然后通过EJB远程方法调用(使用Apache Wicket)返回到我的视图.在这部分中,我DomainObject为返回的地图添加了一个新内容,以便存储来自最终用户的任何新值.

当用户在其浏览器中点击"添加"按钮时,会出现问题,我尝试在地图中检索新创建的项目,但它失败了.通过使用调试器,我面临以下事情.

假设HashMap<DomainObject, Boolean> map并且DomainObject do两个变量很有趣,我在调试器中得到以下结果

map.keySet();给我一个对应的对象do(甚至@whatever simili-reference是相同的),hashcode()在两个对象上返回相似的值并equals()在两个返回之间true

map.containsKey(do); 回报 false

map.get(do); 回来null,很奇怪,因为我的钥匙似乎在map.

假设我新创建的项是枚举的第一个键keySet(),我执行以下操作: map.get(new ArrayList(map.keySet()).get(0)),它返回null.

如果它可以帮助,通过将断点附加到我DomainObject.equals()DomainObject.hashcode()方法,我发现map.get()只是调用hashcode()而不是equals().

我找到的唯一解决方法是在现有的地图上重新创建一个新地图new HashMap(map),在这个新地图中,我根本没有问题通过其键查找对象.

我希望这里有人可以指出我发生了什么,谢谢.

使用环境:

  • OS X 10.7.1下的Sun Java 1.6.0_26 x64
  • Debian 6.0.2下的OpenJDK 1.6.0_18 x64(2.6.32)
  • Apache Wicket 1.4.17
  • Oracle Glassfish 3.1.1
  • JBoss Hibernate 3.6.5

DomainObject 代码: …

java map

5
推荐指数
1
解决办法
1万
查看次数

如何使用带有groovy闭包的构造函数参数来实例化Java抽象类

我试图从我的Groovy代码实例化一个Java抽象类.考虑以下Java抽象类(从类中剥离出非相关处理):

public abstract class StackOverflow{
  public abstract String answerMe();
}
Run Code Online (Sandbox Code Playgroud)

我可以通过这种方式轻松地在Groovy中实例化它,并且调用answerMe()将触发正确的输出:

StackOverflow stack = [answerMe : { "Answer" }] as StackOverflow
Run Code Online (Sandbox Code Playgroud)

现在,如果我修改StackOverflow类在构造函数中添加一个String参数,如下所示:

public abstract class StackOverflowStr{
  public StackOverflowStr(String s){}
  public abstract String answerMe();
}
Run Code Online (Sandbox Code Playgroud)

我真的不知道如何实例化我的对象,我尝试了很多东西,但我似乎无法找到正确的语法,有人有任何线索吗?

java groovy abstract-class

5
推荐指数
1
解决办法
3387
查看次数

标签 统计

java ×2

abstract-class ×1

android ×1

groovy ×1

map ×1