小编Alf*_*Alf的帖子

如何使用Stream.of只创建一个Stream <String []>?

使用Stream.of创建通用流非常方便,但是如果我想创建一个Stream<String[]>只有一个元素呢?

比方说我有:

String[] tropicalFruits = new String[] {"pineapple", "banana", "mango"};
String[] fruits = new String[] {"melon", "peach", "apple"};
Run Code Online (Sandbox Code Playgroud)

然后Stream.of(tropicalFruits, fruits)产生Stream<String[]>两个元素.如何为单个元素的流实现相同的功能?如果我尝试:

Stream<String[]> fruityStream = Stream.of(tropicalFruits);
Run Code Online (Sandbox Code Playgroud)

我明白了:

错误:不兼容的类型:推理变量T具有不兼容的边界
相等约束:java.lang.String[]
下限:java.lang.String

Stream<String[]> fruityStream = Stream.of(fruits);
                                 ^---------------^
Run Code Online (Sandbox Code Playgroud)

我用Google搜索并搜索了但是我什么也没得到.在我看来,这不是一个非常不寻常的或esoeteric问题,所以有点令人惊讶我没有得到任何答案(或者我没有用正确的关键词搜索).

java type-inference variadic-functions java-8 java-stream

20
推荐指数
3
解决办法
1159
查看次数

使用Maven构建多个体系结构SWT应用程序

我为SWT应用程序设置了一个Maven项目.此应用程序在多个平台(OS X,Windows 64位,Windows 32位,Linux 64位和Linux 32位)上运行,我已对其进行设置,以便在运行Maven并打包时检测到该平台应用程序转到不同的目标目录.以下是来自pom.xml的相关部分,以实现此目的:

<profiles>
  <profile>
    <id>linux_x86_64</id>
    <activation>
      <os>
        <name>linux</name>
        <arch>amd64</arch>
      </os>
    </activation>
    <build>
      <directory>${project.basedir}/target/${project.version}/linux_x86_64</directory>
    </build>
  </profile>

  <profile>
    <id>win32_x86_64</id>
    <activation>
      <os>
        <name>linux</name>
        <arch>i386</arch>
      </os>
    </activation>
    <build>
      <directory>${project.basedir}/target/${project.version}/win32_x86_64</directory>
    </build>
    </profile>
  ...
</profiles>
Run Code Online (Sandbox Code Playgroud)

用于SWT的依赖是这样的:

<dependencies>
  <dependency>
    <groupId>org.eclipse</groupId>
    <artifactId>swt</artifactId>
    <version>3.7.2.v3740</version>
  </dependency>
...
</dependencies>
Run Code Online (Sandbox Code Playgroud)

为了清楚起见,我已在我的本地存储库中安装了SWT虚拟包(org.eclipse.swt_3.7.2.v3740f.jar)和所有特定于平台的虚拟包(org.eclipse.swt.gtk.linux.x86_64_3.7.2).v3740f,org.eclipse.swt.win32.x86_64_3.7.2.v3740f等).

我打包依赖关系的方式是使用maven-dependency-plugin的"lib"文件夹,Maven足够聪明,可以复制SWT虚拟包和我正在打包应用程序的平台特定的一个.到现在为止还挺好...

问题是我想从一台机器编译不同平台的应用程序.我怎么做到这一点?

我尝试在每个配置文件中使用每个平台所需的SWT jar设置属性,如下所示(Windows 64位示例):

<properties>
  <swt.artifactId>swt.win32.x86_64</swt.artifactId>
  <swt.version>3.7.2</swt.version>
</properties>
Run Code Online (Sandbox Code Playgroud)

但是采用这种方法,特定于配置文件的SWT jar 我正在运行Maven的特定于平台的jar 被复制到"lib"目录中,最后得到三个jar:

  • SWT-3.7.2.v3740.jar
  • swt.gtk.linux.x86_64-3.7.2.jar
  • swt.win32.x86_64-3.7.2.jar

有没有一种方法可以指定一个配置文件忽略我运行它的机器,这样我就不需要手动删除它的SWT jar了?

提前致谢.

java eclipse swt maven

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

将polyfill作为带有babel-preset-env的import语句或将它们添加到webpack.config.js的条目中是否更好?

babel-preset-env提供useBuiltIns将其应用于babel-polyfill并转换import 'babel-polyfill'为特定的,基于环境的选项import 'core-js/whatever.

如果我添加babel-polyfill了我的Webpack条目部分(参见下面的示例),或者在这种情况下useBuiltIns被忽略并被所有可能的导入替换,是否应用了此转换?

entry: {
  app: ['babel-polyfill', './src/app.js']
}
Run Code Online (Sandbox Code Playgroud)

javascript ecmascript-6 webpack babeljs babel-polyfill

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

如何在Eclipse中使用m2e执行'mvn compile'和'mvn package'?

本周我开始使用Maven进行一些我正在研究的项目,并将Eclipse与m2e插件一起使用.我一直在看它,但我找不到编译和打包的方法(据我所知,我可以做清理,生成源,测试和安装).如何用m2e实现这一目标?

java eclipse maven m2e

8
推荐指数
1
解决办法
6890
查看次数

Rails cookie中值request_method的目的是什么?

我想知道request_method在Rails 4应用程序的每个cookie中找到的值的目的是什么.

$ curl -i localhost:3000
HTTP/1.1 200 OK 
X-Frame-Options: SAMEORIGIN
X-Xss-Protection: 1; mode=block
X-Content-Type-Options: nosniff
X-Ua-Compatible: chrome=1
Content-Type: text/html; charset=utf-8
Etag: "396b1283ee1adc85adf3c604a553ad74"
Cache-Control: max-age=0, private, must-revalidate
X-Request-Id: d8577072-a823-418c-b521-6c34dbe71645
X-Runtime: 0.068436
Server: WEBrick/1.3.1 (Ruby/2.0.0/2013-06-27)
Date: Wed, 04 Dec 2013 21:16:38 GMT
Content-Length: 4375
Connection: Keep-Alive
Set-Cookie: request_method=GET; path=/
...
Run Code Online (Sandbox Code Playgroud)

我用谷歌搜索了它,在任何地方都找不到答案.为什么不直接使用会话值?

cookies ruby-on-rails http session-cookies ruby-on-rails-4

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

执行__builtin_va_start(v,l)

走下glibc中可变宏的兔子洞,我已经到达了/usr/lib/gcc/x86_64-linux-gnu/4.8.2/include/stdarg.h那里,例如,va_start宏被定义为:

#define va_start(v,l) __builtin_va_start(v,l)

但我一直在努力寻找__builtin_va_start(v,l)没有成功的实际实施.我已经用Google搜索并为它进行了搜索,而我所获得的最远的是微软对Visual Studio 的实现,我认为它并没有根本不同.

有谁知道glibc的实现在哪里?

TIA.

c gcc variadic-functions

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

是否有隐式扩展到泛型类型的可为空注释?

我\xe2\x80\x99m 在一个Java 项目中工作,并且我\xe2\x80\x99 最近开始向方法参数和返回值添加可为空的注释。我想知道是否可以将任何注释添加到参数中,以便它也涵盖泛型类型。目前我身边也有类似的案例:

\n\n
Map<String, String> someMethod(Map<String, Map<String, String>> arg) {\n...\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

那就变成:

\n\n
@NotNull\nMap<@NotNull String, @NotNull String> someMethod(@NotNull Map<@NotNull String, @NotNull Map<@NotNull String, @NotNullString>> arg) {\n...\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

显然,这变得难以阅读。我\xe2\x80\x99m对Java注释的内部不是很熟悉,所以也许这是\xe2\x80\x99不可能的?

\n

java generics nullable

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

为什么Map <String,Set <String >>不匹配Map <T,Set <?>>?

我有一个带有以下签名的方法:

public <T> int numberOfValues(Map<T, Set<?>> map)
Run Code Online (Sandbox Code Playgroud)

但是我不能称之为传递Map<String, Set<String>>.例如,以下内容无法编译:

Map<String, Set<String>> map = new HashMap<>();
numberOfValues(map);
Run Code Online (Sandbox Code Playgroud)

错误消息是:

numberOfValues (java.util.Map<java.lang.String,java.util.Set<?>>) in class cannot be applied to (java.util.Map<java.lang.String,java.util.Set<java.lang.String>>)
Run Code Online (Sandbox Code Playgroud)

但是,如果我改为以下一切都很好:

public <T, V> int numberOfValues(Map<T, Set<V>> map)
Run Code Online (Sandbox Code Playgroud)

但是我对此并不感兴趣V,因为我只想知道每组的大小.

为了完整起见,这是整个方法:

public <T, V> int numberOfValues(Map<T, Set<V>> map) {
    int n = 0;
    for (T key : map.keySet()) {
        n += map.get(key).size();
    }
    return n;
}
Run Code Online (Sandbox Code Playgroud)

我知道它也可以像这样完成,但不是问题的重点:)

public <T> int numberOfValues(Map<?, Set<T>> map) {
    int n = 0;
    for (Set<T> value …
Run Code Online (Sandbox Code Playgroud)

java generics wildcard

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