我正在尝试编写一个断言来检查用户给出的大小是否为正值,如果不是则将其设为正值,此语句位于类构造函数内部,该构造函数采用size值然后生成数组[size].我写了下面的代码,我认为是正确的.
public Grid(int size) {
try{
assert size > 0 ;
}
catch(AssertionError e){
size = Math.abs(size);
}
setLayout(new GridLayout(size, size));
grid = new JButton[size][size];
}
Run Code Online (Sandbox Code Playgroud)
虽然我似乎永远不会评估我的断言并继续该程序然后导致NegativeArraySize错误(我试图避免)
我也试过了
assert size>0;
Run Code Online (Sandbox Code Playgroud)
并且程序无法停止负值.
我最近在mac上运行java时遇到了一些问题,所以我不知道我的代码是否正确,或者它是否只是其中一个奇怪的mac怪癖!并且应该使用
size=Math.abs(size);
Run Code Online (Sandbox Code Playgroud)
谢谢山姆,
我正在尝试解压缩从反射对象字段获得的数组.我将常规字段的值设置为Object.如果它是一个数组,那么我想将我的一般对象转换为一个数组(无论它的类型)并提取其内容
fields[i].setAccessible(true);
String key = fields[i].getName();
Object value = fields[i].get(obj);
if (value.getClass().isArray()){
unpackArray(value);
}
Run Code Online (Sandbox Code Playgroud)
在我的unpackArray方法中,我尝试将Object Value转换为java.util.Arrays,java.reflect.Array和Array [],但每次都不让我.
有没有办法将我的Object转换为通用数组?
非常感谢Sam
我正在尝试使用正则表达式来查找和替换,以便我可以找到所有'('对齐环境中使用的'字符.示例文本:
Lorem Ipsum Lorem Ipsum Lorem Ipsum
Lorem Ipsum Lorem Ipsum (Lorem Ipsum Lorem Ipsum )
Lorem Ipsum Lorem Ipsum Lorem Ipsum Lorem Ipsum
\begin{align}
\frac{d_l}{2}< |\epsilon_H(g(m))| <\frac{d_r}{2}
\frac{d_l}{2}< |\epsilon_H(g(m))| <\frac{d_r}{2}
\end{align}
Lorem Ipsum Lorem Ipsum Lorem Ipsum
Lorem Ipsum Lorem Ipsum Lorem Ipsum
Run Code Online (Sandbox Code Playgroud)
然后我想找到所有的"("内\begin{align}和\end{align}和不是文本的主体内我到目前为止有正则表达式:
(?<=\{align\})\s(.*)\s(.*)\s(?=\\end\{align\})
Run Code Online (Sandbox Code Playgroud)
但这只能查找环境中的所有文本,而不是'('.
(这背后的原因是因为我要通过我的整个文件和更改所有的"("里面的方程" \left(",我不想改变,可以使用文本中出现的任何括号内.)
我正在为客户端构建应用程序,我需要能够通过字符串引用字段值,即用户使用字符串来定义要更改其值的字段,这是抽象框架的一部分,从技术上讲,我不知道他们想要改变的字段的名称.当然我可以使用哈希映射来做到这一点,但我正在考虑使用java反射,因为这允许字段保留为对象的字段而不是被编码为哈希映射的值.我已经将反射用于我自己的个人工作,但我想知道使用Java反射实际上是不好的做法,我应该坚持使用hashmap方法.
(对于解决所描述的设计问题的任何其他建议也表示赞赏)
谢谢
我撞到了另一堵墙.让我的键输入工作后,我已经绞尽脑汁几个小时,我想创建一个暂停功能,这样如果再次按下相同的键,则timertask停止运行(即游戏暂停)
JPanel component = (JPanel)frame.getContentPane();
component.getInputMap().put(KeyStroke.getKeyStroke("SPACE"), "space");
component.getActionMap().put("space", (new AbstractAction(){
public void actionPerformed(ActionEvent e){
Timer timer = new Timer();
timer.scheduleAtFixedRate(new TimerTask(){
public void run(){
grid.stepGame();
}
},250, 250);
}}));
}
Run Code Online (Sandbox Code Playgroud)
问题是我无法使用全局布尔值isRunning var并在每次按下键时切换它,因为嵌套类中的timerTask方法(因此boolean isRunning必须被声明为final才能被访问...).关于如何检测是否再次按下键或者游戏是否已经运行的任何想法,我可以暂停/取消我的timerTask.
非常感谢Sam
这与我上一个问题非常相似,但是在JPanel中这样做我试图在JPanel(固定大小)中显示一个JEditorPane,然后显示一个HTML文本字符串.(这是我可以使用卡布局和开关面板与不同的显示器).我可以再次显示所有内容,但似乎我传递到EditorPane的HTML字符串中的文本没有切断并换行到新行.即它只是伸出屏幕.似乎setSize方法与窗格的大小无关?
我正在为不同大小的屏幕制作这个应用程序,所以重要的是文本包装到新行并适合屏幕大小而不是跑掉!当EditorPane直接位于JFrame而不是JPanel时,它可以工作.
JEditorPane pane = new JEditorPane();
pane.setEditable(false);
HTMLDocument htmlDoc = new HTMLDocument () ;
HTMLEditorKit editorKit = new HTMLEditorKit () ;
pane.setEditorKit (editorKit) ;
pane.setSize(size);
pane.setMinimumSize(size);
pane.setMaximumSize(size);
pane.setOpaque(true);
pane.setText("<b><font face=\"Arial\" size=\"50\" align=\"center\" > Unfortunately when I display this string it is too long and doesn't wrap to new line!</font></b>");
bg.add(pane, BorderLayout.CENTER);
Run Code Online (Sandbox Code Playgroud)
非常感谢Sam
当试图通过正常机制打开数据库连接时,nullpointerexecption会抛出一个点dbhelper.getWritableDatabase.
问题似乎源于IntentService我传递的背景.
public AnalysisService() {
super("AnalysisService");
Log.d("ANALYSIS_SERVICE", "Service started");
try{
db = new DBAdapter(this)
db.openDB();
}catch(Exception e){
Log.d("ANALYSIS_SERVICE", Arrays.toString(e.getStackTrace()));
Log.e("ANALYSIS_SERVICE", e.toString());
}
}
Run Code Online (Sandbox Code Playgroud)
该db.open方法在这里执行:
public class DBAdapter implements Database {
protected Context context;
protected SQLiteDatabase db;
private DatabaseHelper dbHelper;
public DBAdapter(Context context) {
this.context = context;
Log.e("DB_ADAPTER", "CREATED");
}
/**
* Opens a database connection.
* @return
* @throws SQLException
*/
@Override
public DBAdapter openDB() throws SQLException {
dbHelper = new DatabaseHelper(context); …Run Code Online (Sandbox Code Playgroud) 我正在运行 kafka kubenetes helm 部署,但是我不确定如何安装自定义插件。
在本地版本的 kafka 上运行自定义插件时,我将卷安装/myplugin到 Docker 映像,然后设置插件路径环境变量。
我不确定如何将此工作流程应用于 helm Charts/kubernetes 部署,主要是如何将插件安装到 Kafka Connect pod,以便可以在 default 中找到它plugin.path=/usr/share/java。
java ×5
swing ×3
reflection ×2
android ×1
apache-kafka ×1
arrays ×1
jeditorpane ×1
kubernetes ×1
latex ×1
macos ×1
perl ×1
regex ×1
service ×1
sqlite ×1
timertask ×1