我希望根据行和列号获取单元格的内容.行号和列号存储在单元格中(此处为B1,B2).我知道以下解决方案有效,但他们觉得有点hacky.
索尔1
=CELL("contents",INDIRECT(ADDRESS(B1,B2)))
Run Code Online (Sandbox Code Playgroud)
索尔2
=CELL("contents",OFFSET($A$1, B1-1,B2-1))
Run Code Online (Sandbox Code Playgroud)
有没有那么冗长的方法?(比如= CellValue(row,col)或者其他什么)?
编辑/澄清:我只想使用excel工作表公式.没有VBA.简而言之,我几乎将VBA Cells()方法视为excel公式.
在我们的Linux系统中,我们使用命名管道进行进程间通信(生产者和消费者).
为了测试使用者(Java)代码,我想实现(在Java中)一个虚拟生成器,它写入连接到使用者的命名管道.
现在,测试也应该在Windows开发环境中运行.因此,我想知道如何在Java中从Windows创建命名管道.在Linux中,我可以使用mkfifo(使用称为Runtime.exec()),但我应该如何在Windows上执行此操作?
在板载eMMC上设置和定制我的"主"BeagleBone Black(BBB)和应用程序等之后,我想在其他BBB板上复制它.
复制BBB的最佳方法是什么?
我对选项的理解:
哪种可能/最好?
编辑:我目前的解决方案是使用标准图像(来自BeagleBoe网站)进行闪存,然后让脚本按预期进行所有修改.这包括禁用我不需要的许多服务,安装应用程序和配置东西等.如果有一种更简单的方法来制作带有完整图像的SD卡,我仍然感兴趣.
有没有办法清除MATLAB函数中的所有持久变量,同时将断点保留在相应的函数文件中?
clear all;
Run Code Online (Sandbox Code Playgroud)
和
clear functions;
Run Code Online (Sandbox Code Playgroud)
都杀了断点.
在我的Linux(BeagleBone Black上的Angstrom发行版)上,我有一个USB加密狗,它作为一个串口提供,默认情况下可用作 /dev/ttyUSB0
我想启动一个守护进程,它将连接到串行端口并使其可用作套接字.我有这个USB到套接字桥的代码,它可以在手动启动时工作.
我想让它在系统启动时自动启动,假设USB加密狗已插入.我应该怎么做?
到目前为止的尝试:
systemd:我创造了条件systemd服务After: remote-fs.target和After:syslog.target,但(似乎)的USB加密狗是不准备在这一点上和守护程序的启动失败.
是否有其他systemd targets或services条件,以便只有当udev完成安装设备并且网络准备好后才启动守护进程?
udev:我创建了一个udev规则
KERNEL =="ttyUSB?",RUN + ="/ path/to/daemon.sh"
哪个成功执行.但守护进程(在该脚本中以"&"作为后台进程启动)似乎不会执行.从udev规则分叉长时间运行的进程似乎也不赞成.
这样做的正确方法是什么?
我有以下类,只包含一个字段i.对象的锁定("this")保护对该字段的访问.实现equals()时,我需要锁定此实例(a)和另一个(b).如果线程1调用a.equals(b)并且同时线程2调用b.equals(a),则锁定顺序在两个实现中是相反的并且可能导致死锁.
我应该如何为具有同步字段的类实现equals()?
public class Sync {
// @GuardedBy("this")
private int i = 0;
public synchronized int getI() {return i;}
public synchronized void setI(int i) {this.i = i;}
public int hashCode() {
final int prime = 31;
int result = 1;
synchronized (this) {
result = prime * result + i;
}
return result;
}
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Sync …Run Code Online (Sandbox Code Playgroud) 在Java中进行国际化时,为每条消息分配一个字符串键.什么是最佳实践,在哪里放置这些字符串键.目标是允许简单的重构(例如,密钥名称更改),清晰可读的代码,关注点的分离,但即使从代码的不同部分调用,仍然没有重复的密钥/消息.
//bad way, strings directly in code
messages.getString("hello_key");
Run Code Online (Sandbox Code Playgroud)
-
// better way, use String constants
public static final String HELLO_KEY = "hello_key";
...
messages.getString(HELLO_KEY);
Run Code Online (Sandbox Code Playgroud)
-
// other (better?) way, put all keys in one huge central class
public class AllMessageKeys {
public static final String HELLO_KEY = "hello_key";
...
}
public class Foo {
...
messages.getString(AllMessageKeys.HELLO_KEY);
}
Run Code Online (Sandbox Code Playgroud)
-
// other (better?) way, put all keys in neighbor class
public class FooMessageKeys {
public static final String HELLO_KEY = "hello_key";
} …Run Code Online (Sandbox Code Playgroud) 我运行JVisualVM(Windows XP,Sun Java 1.6.0.13,32位客户端VM)来监视远程应用程序(Linux,Sun Java 1.6.0.07,64位服务器VM).在启动实际的远程应用程序之前,我jstatd使用all访问策略在远程计算机上启动:
grant codebase "file:${java.home}/../lib/tools.jar" {
permission java.security.AllPermission;
};
Run Code Online (Sandbox Code Playgroud)
然后我使用命令行启动实际的应用程序
java -Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.port=3333
compileTest.Main
Run Code Online (Sandbox Code Playgroud)
从客户端计算机,我可以看到远程应用程序并监视它.我也可以进行线程转储等.遗憾的是,堆转储按钮显示为灰色.
如何使用JVisualVM从远程监控的应用程序获取堆转储?
我尝试使用jConsole.使用jConsole,可以使用com.sun.management.HotSpotDiagnostic dumpHeap操作进行远程堆转储.我希望将转储转移到客户端,并使用JVisualVM提供的工具进行分析.我怎样才能做到这一点?
我使用Spring boot 1.4.2,它带来了hibernate 5.0.11(JPA 2.1).我想在我的实体中使用Java 8时间类,因此包括在内hibernate-java8.
我的实体定义了LocalDate字段.
@Entity
@Table(name = "my_alarms_timeline", indexes = {...})
public class MyAlarm {
...
@Column(name = "validity_date")
@NotNull
private LocalDate validityDate;
}
Run Code Online (Sandbox Code Playgroud)
我希望这会映射到H2数据库中的DATE.
在我的数据库中,我将其声明为validity_date DATE NOT NULL,.
当我尝试运行测试时,出现以下错误:
validity_date TIMESTAMP NOT NULL,
令我惊讶的是,如果我将数据库定义更改为" hibernate-java8 我得到错误"
AttributeConverter<LocalDate, java.sql.Date>
这只是前一个的反向信息.
我也试过,而不是包括LocalDateTime,使用一个,hibernate-java8但这会产生相同的错误结果.
我该怎么做,以便我的LocalDate正确映射到数据库中的DATE?
我也试过一个validity_date DATE NOT NULL,映射到TIMESTAMP 的字段,这没有问题......
我在MATLAB中定义了一个枚举类型
classdef(Enumeration) Color < Simulink.IntEnumType
enumeration
RED(0),
GREEN(1),
BLUE(2),
end
end
Run Code Online (Sandbox Code Playgroud)
我可以指定它:
>> x = Color.RED
x =
RED
Run Code Online (Sandbox Code Playgroud)
我可以这样显示:
>> disp(x)
RED
Run Code Online (Sandbox Code Playgroud)
或者像这样
>> x.display()
x =
RED
Run Code Online (Sandbox Code Playgroud)
如何以字符串形式访问该名称("RED")?
换句话说,我正在寻找类似的东西:
s = x.toString()
Run Code Online (Sandbox Code Playgroud)
要么
s = tostring(x)
Run Code Online (Sandbox Code Playgroud)
两者都不起作用.