小编Sle*_*led的帖子

Windows和Linux之间的行结尾是否不同?

我试图/etc/passwd用Java 解析Linux 文件.我正在阅读java.util.Scanner课程中的每一行,然后java.lang.String.split(String)用来分隔每一行.

问题是该行:

list:x:38:38:Mailing List Manager:/var/list:/bin/sh" 
Run Code Online (Sandbox Code Playgroud)

被扫描仪视为3条不同的线:

  1. list:x:38:38:Mailing
  2. List
  3. Manager...

当我输入一个我没有从Linux获得的新文件时,Scanner正确解析它.

有什么我不了解Linux中的新行吗?

显然,解决方法是在不使用扫描仪的情况下解析它,但它并不优雅.有谁知道这样做的优雅方式?

有没有办法将文件转换为可以使用的文件Scanner


甚至两天前:不同线路在不同平台结束的历史原因

编辑

原作者提供的说明:

"我发现我有一个不同的错误导致问题.无视问题"

java linux newline

18
推荐指数
2
解决办法
3万
查看次数

黄瓜选项注释

cucumber-jvm javadocs指出glue元素的目的是指定stepdefinitions和hooks的位置.但是,这对我来说似乎不起作用.假设我在目录a中有我的功能,在目录b中有我的步骤定义.然后,

@Cucumber.Options(
        features= "directory_a", 
            glue="directory_b"
)
Run Code Online (Sandbox Code Playgroud)

将从directory_a加载我的功能文件,但是,它不会从direct_b加载我的步骤定义.但是,如果我使用

@Cucumber.Options(
        features= {"directory_a", "directory_b"}
)
Run Code Online (Sandbox Code Playgroud)

然后加载来自directory_a的我的功能,并且还会拾取来自directory_b的步骤定义.这正是我想要的,但是,我不明白为什么前者不起作用?我猜它与它有关,期望URI的格式不同(也许我需要在类路径前面添加//或类似的东西),但我在文档中找不到任何关于此的信息.

cucumber cucumber-jvm

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

编译器说"变量可能没有被初始化",虽然我有一个标志变量来保证它

这是我的代码片段:

Someclass someObject;
boolean success = true;
try {
    someObject = someOperation();
} catch (Exception e) {
    success = false;
}
if (success) {
    int number = Integer.valueOf(someObject.someMethord());
}
Run Code Online (Sandbox Code Playgroud)

并在行内:

 int number = Integer.valueOf(someObject.someMethord());
Run Code Online (Sandbox Code Playgroud)

Java编译器抛出错误说

错误:变量some​​Object可能尚未初始化.

但是,如果success等于true,则没有办法someObject不会被初始化,为什么我会收到此错误?

java

18
推荐指数
3
解决办法
4312
查看次数

goto和析构函数是否兼容?

此代码导致未定义的行为:


void some_func() {
  goto undefined;
  {
    T x = T();
    undefined:
  }
}
Run Code Online (Sandbox Code Playgroud)

不调用构造函数.

但是这段代码怎么样?x的析构函数会被调用吗?我想会是,但我想确定.:)


void some_func() {
  {
    T x = T();
    goto out;
  }
  out:
}
Run Code Online (Sandbox Code Playgroud)

c++ goto

17
推荐指数
1
解决办法
2578
查看次数

链接时找不到C++库,错误编译`boost :: program_options`示例

我正在尝试编译multiple_sources.cpp以在我的计算机上编译.我正在运行Xubuntu Lucid Lynx全面更新.

它将编译没有问题,g++ -c multiple_sources.cpp但当我尝试链接并使g++ multiple_sources.o我得到一个exectuable 得到:

multiple_sources.cpp:(.text+0x3d): undefined reference to `boost::program_options::options_description::m_default_line_length'
multiple_sources.cpp:(.text+0x87): undefined reference to `boost::program_options::options_description::options_description(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int)'
multiple_sources.cpp:(.text+0x15a): undefined reference to `boost::program_options::options_description::add_options()'
multiple_sources.cpp:(.text+0x17b): undefined reference to `boost::program_options::options_description_easy_init::operator()(char const*, char const*)'
multiple_sources.cpp:(.text+0x193): undefined reference to `boost::program_options::options_description_easy_init::operator()(char const*, char const*)'
multiple_sources.cpp:(.text+0x1af): undefined reference to `boost::program_options::options_description_easy_init::operator()(char const*, boost::program_options::value_semantic const*, char const*)'
multiple_sources.cpp:(.text+0x1eb): undefined reference to `boost::program_options::options_description::m_default_line_length'
multiple_sources.cpp:(.text+0x252): undefined reference to `boost::program_options::options_description::options_description(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int)'
...
Run Code Online (Sandbox Code Playgroud)

et cetera …

c++ boost boost-program-options

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

如何在JUnit 5中实现JUnit 4参数化测试?

在JUnit 4中,通过使用@Parameterized注释很容易在一堆类中测试不变量.关键是对一个参数列表运行一组测试.

如何在JUnit 5中复制它,而不使用JUnit-vintage?

@ParameterizedTest不适用于测试类.@TestTemplate听起来可能是合适的,但是注释的目标也是一种方法.


这种JUnit 4测试的一个例子是:

@RunWith( Parameterized.class )
public class FooInvariantsTest{

   @Parameterized.Parameters
   public static Collection<Object[]> data(){
       return new Arrays.asList(
               new Object[]{ new CsvFoo() ),
               new Object[]{ new SqlFoo() ),
               new Object[]{ new XmlFoo() ),
           );
   }

   private Foo fooUnderTest;


   public FooInvariantsTest( Foo fooToTest ){
        fooUnderTest = fooToTest;
   }

   @Test
   public void testInvariant1(){
       ...
   }

   @Test
   public void testInvariant2(){
       ...
   } 
}
Run Code Online (Sandbox Code Playgroud)

java junit5

17
推荐指数
1
解决办法
2977
查看次数

maven无法在生成源中添加文件以进行编译阶段

我使用Apache Thrift来生成代码target/generated-sources.

Thrift编译器生成一个名为的目录gen-java,其中包含所有Java代码.当我执行时mvn compile,代码生成正确target/generated-source/gen-java,但在编译阶段,它抱怨无法找到定义的类gen-java.

据我了解,Maven 2自动添加生成的源,是吗?

如果我的测试代码也依赖于generated-sources,我是否必须手动指定编译器包括?

code-generation thrift maven

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

调用java.lang.String不可变是正确的吗?

这个Java教程 说不可变对象在创建后不能改变它的状态.

java.lang.String 有一个领域

/** Cache the hash code for the string */
private int hash; // Default to 0
Run Code Online (Sandbox Code Playgroud)

hashCode()方法的第一次调用时初始化,因此它在创建后更改:

    String s = new String(new char[] {' '});
    Field hash = s.getClass().getDeclaredField("hash");
    hash.setAccessible(true);
    System.out.println(hash.get(s));
    s.hashCode();
    System.out.println(hash.get(s));
Run Code Online (Sandbox Code Playgroud)

产量

0
32
Run Code Online (Sandbox Code Playgroud)

调用Stringimmutable 是否正确?

java immutability

16
推荐指数
2
解决办法
574
查看次数

以编程方式运行Spring Batch Job?

我有一个Spring Batch应用程序,我从它开始CommandLineJobRunner.但现在我必须将此应用程序嵌入到我们的企业环境中.我们有一个自己的Launcher应用程序,我必须使用它.对于这个启动器应用程序,我需要一个带有main方法的启动类,它将在启动时调用,并且我必须启动Spring Batch.

JobLauncher使用此启动器手动分配和运行作业的唯一方法,还是Spring Batch中有一个类支持(或者有人知道样本)?

java spring-batch

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

如何在Lua中将函数作为参数传递?

有点困惑这一切; 所以这就是我想要做的!因此有一个def:

block_basic_DEF =
{
    image = "button.png",
    name = "basic block",
    obj_table = this_obj_table.common_objects_table,
    startup = function() init(), <----- This is the problem
}
Run Code Online (Sandbox Code Playgroud)

在另一个文件中,我可以通过以下方式访问:

function spawn(params)
    local obj = display.newImage(params.image)
    -- etc.
Run Code Online (Sandbox Code Playgroud)

在那里block_basic_DEF我希望传递init()函数的地址,以便在我的spawn中我可以做类似的事情:

params.startup() --ie实际上调用了原始的init函数

lua function

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