小编Ing*_*ürk的帖子

Android PowerManager WakeLock - 已弃用

Android SDK告诉我,PowerManager.SCREEN_DIM_WAKE_LOCK从API级别17开始,不推荐使用类似的常量.它还说FLAG_KEEP_SCREEN_ON可以在大多数情况下使用.

但如果不是这样呢?特别是,我希望能够让屏幕变暗但不能完全关闭.什么是其他"更好"的替代品 - 或者根本没有?

android

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

在Typescript中的const enum

我有一个使用Typescript的React应用程序.现在我遇到了const enum的问题.这是我的枚举:

export const enum Snack {
    Apple = 0,
    Banana = 1,
    Orange = 2,
    Other = 3
}
Run Code Online (Sandbox Code Playgroud)

我正在尝试匹配的服务不​​是返回值,而是返回枚举中项目的索引.因此,例如,如果用户设置为在苹果上吃零食,则该服务为该用户而不是"Apple"返回0.理想情况下,我想做的事情如下:

var snackIndex = UserSnack.type; // returning 0 in this example
var userSnack = Snack[snackIndex]; // would return 'Apple'
Run Code Online (Sandbox Code Playgroud)

当我尝试类似的东西时,我收到以下错误:

错误TS2476:只能使用字符串文字访问const enum成员.

由于我收到数据的服务没有返回字符串,因此我遇到了解决这个问题的问题.

任何帮助表示赞赏.

javascript enums typescript

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

Arrays.copyOf会产生浅拷贝还是深拷贝?

关于是否Arrays.copyOf会产生深层或浅层副本,似乎存在很多混淆和不同意见([1]和其他来源).

此测试表明副本很深:

String[] sourceArray = new String[] { "Foo" };
String[] targetArray = java.util.Arrays.copyOf( sourceArray, 1 );

sourceArray[0] = "Bar";

assertThat( targetArray[0] ).isEqualTo( "Foo" ); // passes
Run Code Online (Sandbox Code Playgroud)

该测试表明副本很浅:

String[][] sourceArray = new String[][] { new String[] { "Foo" } };
String[][] targetArray = java.util.Arrays.copyOf( sourceArray, 1 );

sourceArray[0][0] = "Bar";

assertThat( targetArray[0][0] ).isEqualTo( "Foo" ); // fails
Run Code Online (Sandbox Code Playgroud)

解决方案只是简单地制作了顶级维度的深层副本,但其他维度是浅层副本吗?真相是什么?

[1] 如何在Java中对二维数组进行深层复制?

java

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

在没有 *ngIf 的情况下使用 Angular 的“as”?

如果我有一些 Observable data$,我可以as在 Angular 中使用如下:

<ng-template #loading>Loading...</ng-template>
<ng-container *ngIf="(data$ | async) as data; else loading">
  <div *ngFor="let item of data">...</div>
</ng-container>
Run Code Online (Sandbox Code Playgroud)

这真的很酷也很有用,因为它避免了data$多次订阅。但是,如果我想避免这样做但留在同一个容器中怎么办?理想情况下,类似(显然不起作用)

<ng-container let-data="data$ | async">
  <ng-container *ngIf="!data">Loading</ng-container>
  <!-- ... -->
</ng-container>
Run Code Online (Sandbox Code Playgroud)

或者

<ng-container *let="(data$ | async) as data">
  <ng-container *ngIf="!data">Loading</ng-container>
  <!-- ... -->
</ng-container>
Run Code Online (Sandbox Code Playgroud)

换句话说,我想利用as绑定来避免多个订阅,但我实际上并不想有条件地呈现该容器。

这可能吗?感觉应该有一个我遗漏的简单答案。:-)


顺便说一句,我当然知道我可以这样做

data$.takeUntil(this.destroy$).subscribe(data => this.data = data);
Run Code Online (Sandbox Code Playgroud)

在我的组件类中,但我想知道是否有办法避免这种情况并直接在模板中处理它。

angular

14
推荐指数
0
解决办法
5171
查看次数

扫描Javascript以获得浏览器兼容性

是否有工具可以扫描我的Javascript代码以查找可能并非在所有浏览器中都存在的功能?

我的库完全不是用户界面,因此我不关心某些内容是如何"显示"的.我正在寻找的是类似于Mozilla的Javascript MDN.例如,对于Array.prototype.indexOf,他们警告说这是最近的ECMAScript添加,并非在所有浏览器中都存在(并且通常提供存根).我正在寻找的是一个工具,它列出了我的代码中属于此类别的函数.

javascript ecmascript-5

13
推荐指数
1
解决办法
1673
查看次数

Eclipse Luna - AutoIndent不一致

我升级到Luna并遇到自动格式化问题,更具体地说是自动缩进.About Eclipse对话框验证我正在运行4.4.0.

当代码在保存时自动缩进时,它似乎在两种不同的缩进方式之间来回跳转.注意缩进的级别:

doSomething( "arg0",
    "arg1" );
Run Code Online (Sandbox Code Playgroud)

doSomething( "arg0",
        "arg1" );
Run Code Online (Sandbox Code Playgroud)

当使用像git这样的SCM时,这非常烦人.是什么导致了这个?怎么修好?

java eclipse eclipse-luna

11
推荐指数
1
解决办法
2563
查看次数

以Class <?>为关键创建ImmutableMap的问题

我正在尝试创建一个ImmutableMap将类映射到字符串(注意:这当然只是一个例子!).但是,像

ImmutableMap<Class<?>, String> map = ImmutableMap.of( 
    Integer.class, "Integer", 
    Date.class, "Date" 
);
Run Code Online (Sandbox Code Playgroud)

给我以下错误

Type mismatch: cannot convert from ImmutableMap<Class<? extends Object&Comparable<?>&Serializable>,String> to ImmutableMap<Class<?>,String>
Run Code Online (Sandbox Code Playgroud)

奇怪的是,如果我Class<?>向任何(!)键添加一个强制转换,它确实有效

ImmutableMap<Class<?>, String> map = ImmutableMap.of(
    Integer.class, "Integer",
    Date.class, "Date",
    (Class<?>) String.class, "String",
    long.class, "Long"
);
Run Code Online (Sandbox Code Playgroud)

会工作得很好.我有点对这种行为感到困惑:首先,为什么没有演员阵容就行不通?所有这些都是类,它实际上没有任何通用Class<?>,所以为什么它不起作用?其次,为什么任何一个键上的演员都能让它发挥作用?

(旁注:如果你想知道为什么我甚至想做这样的事情 - 是的,这是因为反思...)

编辑:我实际上只是发现这会起作用,但我仍然想了解上述行为

ImmutableMap<Class<?>, String> map = ImmutableMap.<Class<?>, String>builder()
    .put( Integer.class, "Integer" )
    .put( Date.class, "Date" )
    .build();
Run Code Online (Sandbox Code Playgroud)

java generics reflection class guava

10
推荐指数
1
解决办法
2373
查看次数

Weblogic不缓存LDAP

我使用在WebLogic 12.1.2服务器上运行的JSF 2.1和JEE 6设置了一个Web应用程序,并使用openLDAP进行身份验证.我一直注意到在应用程序中加载任何页面都会导致对LDAP的多个BIND请求 - 每一次!

我已经阅读了很多材料,并在Weblogic中配置了LDAP提供程序,这样就可以激活我能找到的任何缓存.我特别设定了

  • [x]缓存已启用
  • 缓存大小:10240
  • 缓存TTL:300
  • GUID属性:entryUUID

我还仔细检查了entryUUID属性是否存在.我在WebLogic或LDAP上都不太了解,但我已经阅读了关于配置缓存的任何页面,但是仍然有很多请求到LDAP(是的,我在更改后重新启动了服务器.)

我很感激任何帮助,见解或猜测可能是什么原因或我如何进一步调试这个问题.我不太确定要附加哪个配置文件,但如果有任何需要我很乐意提供它.

LDAP请求全部如下所示:

# journalctl -u slapd
# … many of these …
Sep 16 23:06:03 server.org slapd[15038]: daemon: read active on 13
Sep 16 23:06:03 server.org slapd[15038]: daemon: epoll: listen=7 active_threads=0 tvp=zero
Sep 16 23:06:03 server.org slapd[15038]: daemon: epoll: listen=8 active_threads=0 tvp=zero
Sep 16 23:06:03 server.org slapd[15038]: conn=1109 op=32 BIND anonymous mech=implicit ssf=0
Sep 16 23:06:03 server.org slapd[15038]: conn=1109 op=32 BIND dn="tpid=NQ00000013,ou=people,dc=de,dc=foobiz,dc=com" method=128
Sep 16 23:06:03 server.org slapd[15038]: …
Run Code Online (Sandbox Code Playgroud)

weblogic ldap openldap

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

向对象/数字/字符串原型添加方法

免责声明

  • 该帖子旨在为遇到类似问题的其他人提供帮助,并检查是否有更好的解决方案。我将附上我自己的解决方案,但欢迎提出想法和改进(除了使其更通用)。
  • 我知道,一般来说,扩展内置对象是一个坏主意。因此,该线程的假设是有充分的理由并且没有办法解决它。

设想

作为一名开发人员,我想向所有 Javascript 对象添加一个方法,其中、和someMethod的实现不同。ObjectNumberString

我希望该解决方案满足以下验收标准:

  • A) 该解决方案在浏览器中运行
    • A1) 该解决方案在严格模式下工作,以防脚本在严格上下文中使用
    • A2) 该解决方案在非严格模式下工作,因为'use strict';在压缩过程中将被删除,例如YUI 压缩机[1]
  • B) 该解决方案适用于Node.js
    • B1) 该解决方案在严格模式下工作(原因参见 A1)
    • B2) 该解决方案在非严格模式下工作,原因与 B2 相同,而且 Node.js 中的严格模式无法在函数级别激活[2]
  • C) 我希望允许其他对象覆盖此方法
  • D)如果可能的话,我想控制该方法是否出现在循环中for .. in以避免与其他库发生冲突
  • E) 解决方案应实际修改原型。

[1] Minfication 删除了严格指令
[2]有什么方法可以在节点中强制使用严格模式?

javascript

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

IntelliJ 找不到 Scanner 类

我正在使用 Intellij IDEA。

这是我的代码:

public static void main(String[] args) {
        java.util.Scanner scanner = new java.util.Scanner(System.in);

        int a = scanner.nextInt();
        System.out.println(a);
}
Run Code Online (Sandbox Code Playgroud)

问题是当我运行它时,它起作用了。但是,Intellij 找不到 Scanner 类。它用红色下划线。

如何解决这个问题?

java intellij-idea

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