我有一个jar文件但遗憾的是由于我的磁盘崩溃而丢失了源代码.我只想将其包名更改为一些有意义的名称.
有什么办法可以更改jar文件的包名,当然我需要在类文件中更新这个包名.
我知道Java Decompiler,但我只是想改变它的包名.
我正在寻找一种在完整的Java应用程序上执行批量重构的方法.在这里,即make方法参数final,但事实并非如此.
这里有人知道这样的工具吗?或者解析Java源代码的东西,可以通过这些更改进行扩展.
是否有任何工具或正则表达式可能有助于获取JavaScript项目中所有全局变量的列表?
有没有办法使用grep整齐地列出'per-file'结果.
就像是:
$grep -i -r -n Search_Pattern .
Run Code Online (Sandbox Code Playgroud)
输出:
file1.c:
LINE_NO: .......... Search_Pattern ....... /* Line Containing Search Pattern */
LINE_NO: .......... Search_Pattern .......
LINE_NO: .......... Search_Pattern .......
LINE_NO: .......... Search_Pattern .......
file2.c:
LINE_NO: .......... Search_Pattern .......
LINE_NO: .......... Search_Pattern .......
LINE_NO: .......... Search_Pattern .......
LINE_NO: .......... Search_Pattern .......
Run Code Online (Sandbox Code Playgroud) 假设你有:
void *p = // something;
int size = 10;
*((char *)p + 8) = size ^ 1;
Run Code Online (Sandbox Code Playgroud)
我知道这看起来像是随机的逻辑,但我想知道它是否仍然按预期进行.当p被转换为char时,我试图将"size ^ 1"的整体放在"p + 8"指向的地址处.基本上我要问的是,它有什么不同:
*((int *)p + 2) = size ^ 1;
Run Code Online (Sandbox Code Playgroud)
此外,如果我选择将指针增加3,会发生什么,例如:
*((char *)p + 3) = size ^ 1;
Run Code Online (Sandbox Code Playgroud)
或(我知道这不等于所有其他人,但想看看这是否正确):
*((int *)p + 3) = size ^ 1;
Run Code Online (Sandbox Code Playgroud) 有人可以解释一下这里发生了什么吗?
我尽可能地简化了.
( 1 || 2 == 1 ) is TRUE (as expected)
( 1 || 2 == 2 ) is TRUE (as expected)
Run Code Online (Sandbox Code Playgroud)
我也希望以下两者都是正确的(但这可能表明缺乏理解......)
( 1 == ( 1 || 2 ) ) is TRUE
( 2 == ( 1 || 2 ) ) is FALSE <--- !!! I don't understand this..
Run Code Online (Sandbox Code Playgroud)
现在它开始有点奇怪......
( 2 == 1 || 2 ) is TRUE
( 3 == 1 || 2 ) is TRUE <--- !!! I don't understand this..
Run Code Online (Sandbox Code Playgroud)
经过一番戏剧之后,我发现以下内容:
( …Run Code Online (Sandbox Code Playgroud) 我有一个枚举类来表示值的类型.该类的代码非常简单:
object Type extends Enumeration {
type Type = Value
val tInt, tBoolean, tString, tColor, tFont, tHAlign, tVAlign, tTextStyle, tUnknown = Value;
def fromValue (value:Any) : Type.Type = {
value match {
case a:Int => tInt
case a:Boolean => tBoolean
case a:Color => tColor
case a:Font => tFont
case a:HAlign.HAlign => tHAlign
case a:VAlign.VAlign => tVAlign
case a:TextStyle.TextStyle => tTextStyle
case _ => tUnknown
}
}
}
Run Code Online (Sandbox Code Playgroud)
我在哪里列举了一些东西:
object VAlign extends Enumeration {
type VAlign = Value
val top, middle, …Run Code Online (Sandbox Code Playgroud) 老实说,我不知道为什么这会让我失望.
public abstract class BankAccount
{
private string accNo;
private double balance;
public abstract void MakeWithdrawal(string acc);
public abstract void MakeDeposit(double dep);
Run Code Online (Sandbox Code Playgroud)
上面的代码抛出了这个错误:
BankAccount.MakeWithdrawal()'是抽象的,但它包含在非抽象类'Worksheet7.BankAccount'中
即使我将该类声明为抽象类.我在这里缺少什么东西,或者在视觉工作室中缺少一些我不知道的东西?
我想查询DBpedia的多个关键字,显然我必须搜索一个确切的子字符串,所以如果我想要页面Egyptian Pyramids,搜索Egypt Pyramids将无法正常工作,但这正是我需要的...
所以我想也许我可以看看"金字塔"这个概念是否与"埃及"有关,通过搜索关系,但我发现很难找到所需的sparql查询
BTW我通过查询:http://dbpedia.org/sparql
我有我的代码,读取和写入MFC编写的串行端口.这些程序运行良好,但由于发生了许多操作(读写),因此速度有点慢.我有一个定时器,可以在串口上进行操作.计时器如下:
Loop_Timer = SetTimer(1,50,0);
Run Code Online (Sandbox Code Playgroud)
串口传输信息如下:
BaudRate = 57600;
ByteSize = 8;
Parity = NOPARITY;
StopBits = ONESTOPBIT;
fAbortOnError = false;
Run Code Online (Sandbox Code Playgroud)
定时器启动时会发生以下写入和读取操作:
Write(command);
Read(returned_message);
returned_message.Trim();
...
//finds a value from the returned string
...
Run Code Online (Sandbox Code Playgroud)
因此,对于给定的选定选项,此读取和写入操作可能是1,2,3或4次.
对于Ex:选项1要求在给定的计时器中发生上述功能4次.选项2要求上述功能发生2次.(因为它只有两个带有返回值的变量).等......
现在,我试图做的是提高整体操作的速度,使其稳健并快速响应.我试过改变计时器,但它仍然很慢.有关改进的建议吗?
java ×2
android ×1
c ×1
c# ×1
coding-style ×1
dbpedia ×1
enumeration ×1
final ×1
grep ×1
jar ×1
javascript ×1
linux ×1
mfc ×1
package ×1
perl ×1
pointers ×1
rdf ×1
regex ×1
scala ×1
search ×1
semantic-web ×1
serial-port ×1
shell ×1
sparql ×1
timer ×1
unix ×1
visual-c++ ×1