小编f.k*_*sis的帖子

与无效合并运算符相反

如果变量不为空或未定义,则空合并运算符允许分配变量,否则为表达式。

a = b ?? other
Run Code Online (Sandbox Code Playgroud)

这是对以前使用的改进,||因为||如果 b 是空字符串或其他虚假但不是空值,也会分配其他。

但是有时,我们也&&用于赋值,例如

a = b && func(b)
Run Code Online (Sandbox Code Playgroud)

如果 b 不是空的,我们只想在 b 上执行 func,否则分配空的 b。

当然,&&检查虚假性,而不是无效性。有没有无效的版本&&

javascript typescript nullish-coalescing

23
推荐指数
3
解决办法
1807
查看次数

更新到java 6u31后,DevServer失败

这是我收到的错误.当我恢复使用6u30时,它工作正常.现在必须更新AppEngine来修复此错误.

Initializing App Engine server
   [ERROR] Unable to start App Engine server
Unable to start embedded HTTP serverjava.lang.RuntimeException: Unable to restore the previous TimeZone
at com.google.appengine.tools.development.DevAppServerImpl.restoreLocalTimeZone(DevAppServerImpl.java:228)
at com.google.appengine.tools.development.DevAppServerImpl.start(DevAppServerImpl.java:164)
at com.google.appengine.tools.development.gwt.AppEngineLauncher.start(AppEngineLauncher.java:97)
at com.google.gwt.dev.DevMode.doStartUpServer(DevMode.java:509)
at com.google.gwt.dev.DevModeBase.startUp(DevModeBase.java:1068)
at com.google.gwt.dev.DevModeBase.run(DevModeBase.java:811)
at com.google.gwt.dev.DevMode.main(DevMode.java:311)
Caused by: java.lang.NoSuchFieldException: defaultZoneTL
at java.lang.Class.getDeclaredField(Unknown Source)
at com.google.appengine.tools.development.DevAppServerImpl.restoreLocalTimeZone(DevAppServerImpl.java:222)
... 6 more
[ERROR] shell failed in doStartupServer method

com.google.gwt.core.ext.UnableToCompleteException: (see previous log entries)
at com.google.appengine.tools.development.gwt.AppEngineLauncher.start(AppEngineLauncher.java:102)
at com.google.gwt.dev.DevMode.doStartUpServer(DevMode.java:509)
at com.google.gwt.dev.DevModeBase.startUp(DevModeBase.java:1068)
at com.google.gwt.dev.DevModeBase.run(DevModeBase.java:811)
at com.google.gwt.dev.DevMode.main(DevMode.java:311)
Run Code Online (Sandbox Code Playgroud)

java google-app-engine

15
推荐指数
2
解决办法
8705
查看次数

如何在 @angular/google-maps infoWindow 中显示动态内容

具体来说,如何在相应的信息窗口中显示与标记相关的信息?

通过遵循此处存储库上的示例,将为每个标记打开相同的信息。使用旧的角度谷歌地图,您可以轻松地将信息窗口插入标记内,并包含您想要的任何数据。

我看到了一些在模板中使用 {{ contentHere }} 设置内容的示例,但这只允许使用字符串。我需要像往常一样使用所有角度模板。

假设我们的模板类似于存储库示例:

<google-map height="400px"
        width="750px"
        [center]="center"
        [zoom]="zoom">
  <map-marker #marker
          *ngFor="let place of places"
          [position]="{ lat: place.latitude, lng: place.longitude }"
          [options]="markerOptions"
          (mapClick)="openInfoWindow(marker)">

      <map-info-window>
        <-- this is what i'm concerned with -->
        {{ place.description }}
      </map-info-window>
  </map-marker>
</google-map>
Run Code Online (Sandbox Code Playgroud)

然后我们像 repo 示例一样添加 viewchild 并以相同的方式打开它:

@ViewChild(MapInfoWindow, {static: false}) infoWindow: MapInfoWindow;

openInfoWindow(marker: MapMarker) {
  this.infoWindow.open(marker);
}
Run Code Online (Sandbox Code Playgroud)

虽然这确实打开了正确的标记,并且标记将反映动态信息,但这将为每个信息窗口显示相同的内容/地点.描述,这并不奇怪,因为正在使用单个 ViewChild。我想出了各种复杂的方法来做到这一点,并查看了源代码,但似乎没有一个明显的和/或内置的解决方案来在窗口中显示与内容相关的内容被标记者使用。没有将其作为基本示例似乎很奇怪。

你们中的任何人会如何去做这件事?

google-maps angular-material angular

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

类中的静态方法与接口中的默认方法具有相同的签名

我有以下情况:

class C {
    static void m1() {}
}

interface I {
    default void m1() {}
}

//this will give compilation error : inherited method from C cannot hide public abstract method in I
class Main extends C implements I {

}
Run Code Online (Sandbox Code Playgroud)

以下是我的问题:

  1. 我知道实例方法将覆盖默认方法,但是如果类中的静态方法与Interface中的默认方法具有相同的签名呢?

  2. 如果静态方法m1()class C将公共那么编译错误将是:

    静态方法m1()与I.中的抽象方法冲突

因此,当访问修饰符是默认值时,它试图隐藏,当它是公共时,它是冲突的.为什么会有这种差异?它背后的概念是什么?

java inheritance multiple-inheritance default-method

12
推荐指数
2
解决办法
625
查看次数

您可以将注释目标限制为某个类的子类吗?

你能否限制注释的目标必须属于某个类?

我想创建一个新的验证约束来限制上传的文件类型.约束注释只能在MultipartFile属性上,而不能在String或类似的东西上.我该如何限制?

java validation annotations

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

如何在Java中等待完成多个任务?

在Java应用程序中实现并发的正确方法是什么?我知道Threads和东西,当然,我已经为Java编程了10年了,但是并没有太多的并发经验.

例如,我必须异步加载一些资源,并且只有在加载完所有资源之后,我才能继续并做更多的工作.不用说,他们没有完成任务的顺序.我该怎么做呢?

在JavaScript中,我喜欢使用jQuery.deferred基础设施

$.when(deferred1,deferred2,deferred3...)
 .done(
   function(){//here everything is done
    ...
   });
Run Code Online (Sandbox Code Playgroud)

但是我在Java中做什么?

java concurrency multithreading

9
推荐指数
3
解决办法
5106
查看次数

无法从子类访问受保护的方法

所以,我们有

public abstract class A{
    protected abstract String f();
}

public class B extends A{
     protected String f(){...}
}

public class C extends A{
    protected String f(){
         A b = (A) Class.forName("B", true, getClass().getClassLoader()).newInstance();
         return b.f();
}
Run Code Online (Sandbox Code Playgroud)

这不允许我访问b.f(),说它B.f()在受保护的范围内,但f受到保护A,并且自C扩展以来A,它也应该可以访问f().

java inheritance classloader

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

Android模拟器已经过时了Google Play服务

最新的Google Play服务版本为9.2.0但Android模拟器的Google Play服务版仅为9.0.80

因此,您无法在模拟器上运行使用9.2.0编译的应用程序.例如,MapView显示'此应用程序无法运行.请更新Google Play服务"

除了将应用程序依赖项更改为9.0.2之外的任何解决方法?

android-emulator google-play-services

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

异步 Bean 初始化

特定 bean 的初始化需要执行网络连接。这可能需要一些时间,并且不必要地将已经很长时间的启动阻塞几秒钟。

有什么方法可以让我的 bean 发出信号,即使它退出构造函数后它仍未初始化,然后在它准备就绪后,向上下文发出信号,表明它现在已准备就绪,并且它的状态应移至“已初始化” .

spring spring-bean spring-async

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

我可以为rest参数传入一个数组吗?

我有一个接受rest参数的函数.

function getByIds(...ids: string){
...
}
Run Code Online (Sandbox Code Playgroud)

我知道我可以打电话getByIds('andrew')getByIds('andrew','jackson')它将字符串转换为字符串数组.

我的问题是:getByIds(['andrew','jackson'])如果我已将参数合并到一个数组中,我可以调用吗?

在Java中我知道我可以,但打字稿似乎给我带来了问题.JsFiddle也让我失望.

typescript ecmascript-6

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