小编Eri*_*ric的帖子

基本数组初始化和排序问题

这是一个相当基本的java问题

我有一个包含String的数组,我想使用java.util.Arrays.sort进行排序

我写的时候

String[] myArray = {"A","B","C"};
java.util.Arrays.sort(myArray);
Run Code Online (Sandbox Code Playgroud)

它正确排序

但是,当我有

String[] myArray = new String[10];
myArray[0] = "A";
myArray[1] = "B";
myArray[2] = "C";

java.util.Arrays.sort(myArray);
Run Code Online (Sandbox Code Playgroud)

sort抛出nullreferenceexception

我很确定它的东西真的很愚蠢,我现在就不知道了.我必须新建String,因为硬编码默认值不会让任何人,任何地方.

java arrays new-operator

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

WinForms interthread修改

每当我想从另一个线程修改winform时,我需要使用

->Invoke(delegate, params)

以便修改发生在winform自己的线程中.

对于需要修改gui的每个函数,我需要另一个委托函数.

是否有一些方案允许我限制所需的委托功能的数量?我有一个控制器类,可以在一个地方处理整个gui,我考虑重用代表但是闻起来很糟糕.

我认为我的问题可以适用于winform可以运行的所有语言

.net c# c++ vb.net winforms

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

./当我使用OpenFileDialog时改变目标

我正在使用一个编写器来记录错误

它的设计方式(请不要问为什么)是每次应用程序必须记录消息时打开一个新的编写器.它将所有内容输出到./Logs/[current-date].txt,它通常解析为"c:\ myappfolder\logs [current-date] .txt"

一切正常,但在我使用打开的文件对话框说"C:\ home\myfolder\myfile"之后,编写器会尝试写入"c:\ home\myfolder\logs [current-date] .txt"

我知道这个问题的解决方案,但我只是不明白发生了什么

.net c++ relative-path openfiledialog

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

java中的随机数

我使用java作为前端和mysql作为后端创建了下表.

mysql> select * from consumer9;
-------------             
4 rows in set (0.13 sec)



Service_ID          Service_Type                            consumer_feedback 

100                    computing                                          -1
35                     printer                                             0
73                    computing                                           -1
50                     data                                                1
Run Code Online (Sandbox Code Playgroud)

我使用随机数的概念生成了这些值.我想获得Service_types(打印机,计算,数据)在所有表中均匀分布的输出,反馈值为1,发生次数最多.

java mysql

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

从bash调用python,如何更改python工作目录?

我有一个像这样的bash脚本:

# gets all relevant files in the directory
cp ../update_files/* ./transfer_dir

# copy the python scripts to that directory
cp ../tools/update_tool/* ./transfer_dir

# execute the python scripts 
python ./transfer_dir/merge.py
Run Code Online (Sandbox Code Playgroud)

现在的问题是,当我尝试执行python脚本时,它认为"工作目录"是.,而不是./transfer_dir,我不能提交先前复制的update_files文件

我怎么能改变呢?我不想太多地修改我的python脚本,因为它们大多与位置无关.

python bash working-directory

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

在python中将16位的最高字节转换为signed int

我使用os.system来运行make命令

os.system('make -C mydir/project all')
Run Code Online (Sandbox Code Playgroud)

我想看看make是否失败.系统文档指出返回代码的格式与wait()

Wait for completion of a child process, and return a tuple containing its pid 
and exit status indication: a 16-bit number, whose low byte is the signal number 
that killed the process, and whose high byte is the exit status (if the signal 
number is zero); the high bit of the low byte is set if a core file was produced.
Run Code Online (Sandbox Code Playgroud)

所以如果make(或另一个应用程序)返回-1,我必须将0xFFxx(我真的不关心被调用的pid)转换为-1.右移后,我得到0xFF,但我无法将其转换为-1,它总是打印255.

那么,在python中,如何将255转换为-1,或者如何告诉解释器我的255实际上是8位有符号整数?

python bit-shift type-conversion

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

DataGridViewCheckBoxCell断开 - >值结果

我正在使用DataGridViewCheckBoxCell,但我无法弄清楚如何让 - > Value属性"正确"工作.

for (int i = this->dgvConfigs->Rows->Count - 1; i >= 0 ; i --){
  DataGridViewCheckBoxCell^ dgvcbc = (DataGridViewCheckBoxCell^) this->dgvConfigs->Rows[i]->Cells[2];
  // This is truely a weird behavior of the DataGridViewCheckBoxCell

  if (dgvcbc->Value->ToString() == "True"){
    // Do stuff
  }
}
Run Code Online (Sandbox Code Playgroud)

现在我无法弄清楚 - >价值可能是什么.当我测试

dgvcbc->Value == true
Run Code Online (Sandbox Code Playgroud)

它永远不会触发,或

dgvcbc->Value == dgvcbc->TrueValue
Run Code Online (Sandbox Code Playgroud)

当我在调试器中查看这些值时,它们都是"{true}",但是等式永远不会被评估为true

我甚至试过了

dgvcbc->TrueValue = true;
dgvcbc->Value == dgvcbc->TrueValue
Run Code Online (Sandbox Code Playgroud)

再次,两者都显示为"{true}",但// Do Stuff永远不会匹配

.net c++ forms datagridviewcheckboxcell

0
推荐指数
1
解决办法
981
查看次数

在Windows上更新OpenGL库

我正在使用使用OpenGL的第三方DLL.目前第三方无法正常工作,因为显示器无法正确刷新.我开始怀疑OpenGL库未正确安装或可能已过时.

有没有办法在Windows上更新OpenGL库?是否有一个官方网站将保存正确的opengl.dll文件或类似的东西?

windows opengl

0
推荐指数
1
解决办法
5327
查看次数

启动时对象初始化的模式

我正在构建一个应用程序,随着时间的推移,我有越来越多的对象在启动时初始化.转移,一些较新的对象依赖于其他对象,所以我得到某种spaggetti初始化,其中创建对象然后传递给其他构造函数.我怀疑我弄错了.

例如,我有一个WinForm,它接受一个"Controller"类和2个事件.需要告诉控制器WinForm中是否存在DataGridView,因此它有一个方法

Controller::SetDataGridReference(DataGridView^ dgv)
Run Code Online (Sandbox Code Playgroud)

是否有一种通用方法在启动时实例化对象然后将这些对象引用到彼此?

我被告知将所有必需的类作为构造函数参数是一个很好的做法,但坦率地说,我不知道如何在这里做到这一点.

我并不认为语言很重要

.net c# c++ java oop

0
推荐指数
1
解决办法
883
查看次数

Java 1.3中的布尔拳击

出于某种原因,我必须维护一个Java 1.3项目.我使用一些布尔但似乎给它们默认值我必须像这样打包它们

Boolean disableAllTheThings = new Boolean(false);

有没有办法在某个地方自动使用常量,例如

Boolean disableAllTheThings = FALSE_CONSTANT;

装箱布尔人只是感觉很奇怪并不重要.

java boxing

0
推荐指数
1
解决办法
142
查看次数