我一直在研究一种实例化方法,它允许我将各种类似的类打包到一个外部类中.然后,我可以通过将该类型的名称传递给构造函数来实例化每个唯一的类类型.经过大量的研究和错误,这就是我想出的.我留下了一个错误,以证明我的问题.
import java.lang.reflect.Constructor;
public class NewTest
{
public static void main(String[] args)
{
try
{
Class toRun = Class.forName("NewTest$" + args[0]);
toRun.getConstructor().newInstance();
}
catch(Exception ex)
{
ex.printStackTrace();
System.out.println(ex.getMessage());
}
}
public NewTest(){}
private class one //Does not instantiate
{
public one()
{
System.out.println("Test1");
}
}
private static class two //Instantiates okay
{
public two()
{
System.out.println("Test2");
}
}
}
Run Code Online (Sandbox Code Playgroud)
按照我的意图编译此代码并java NewTest two在输出中运行结果Test2.
运行java NewTest one结果
java.lang.NoSuchMethodException: NewTest$one.<init>()
at java.lang.Class.getConstructor(Unknown Source)
at java.lang.Class.getConstructor(Unknown Source)
at …Run Code Online (Sandbox Code Playgroud) 我们有一个软件不会删除我们不再需要的条目.为了了解在我们的服务器中浪费了多少数据并准备进行大型清理操作,我试图遍历所有表并拉出标记为删除的记录.这就是我正在使用的:
DECLARE @total INT
DECLARE @count INT
DECLARE @name NVARCHAR(25)
DECLARE @rn INT
SET @total = (SELECT COUNT(Name) FROM sys.tables)
SET @count = 1
SET @rn = (SELECT ROW_NUMBER() OVER(ORDER BY Name) FROM sys.tables)
WHILE @count <= @total AND @count < 2
BEGIN
SET @name = ( SELECT Name, ROW_NUMBER() OVER(ORDER BY Name)
FROM sys.tables
WHERE @rn = @count
)
EXEC('SELECT * FROM WS_Live.dbo.' + @name + ' WHERE GCRecord IS NOT NULL')
SET @count += 1
END
Run Code Online (Sandbox Code Playgroud)
这是我的错误:
消息116,级别16,状态1,行19当子查询未与EXISTS一起引入时,只能在选择列表中指定一个表达式. …
图模型如何处理条件关系,如:
(Alice -[Dates]-> Bob)
Where [Dates] exists IF and ONLY IF
(Bob -[Owns]-> Ferrari) is true
Run Code Online (Sandbox Code Playgroud)
除了查询之外,我想知道数据库引擎是否根据条件应用关系,或者是否需要在应用程序中管理这种关系.
我试图使用以下VBA代码做两件事.
至今:
Function UniqueVisible(MyRange As Range) As Integer
Dim ws As Worksheet
Set ws = Worksheets(1)
Dim R As Range
Dim V() As String
ReDim V(0 To MyRange.Count) As String
For Each R In MyRange
If (R.EntireRow.Hidden = False) Then
For Index = 0 To UniqueVisible
If (V(Index) = R.Value) Then
R.Delete
Exit For
End If
If (Index = UniqueVisible) Then
V(UniqueVisible) = R.Value
UniqueVisible = UniqueVisible + 1
End If
Next
End If
Next R
End Function …Run Code Online (Sandbox Code Playgroud) 我正在学习流并从教科书中复制了以下应用程序。当我的朋友在他的 Windows 机器上编译并运行时,它运行良好。当我在 Ubuntu 18.04 机器上运行应用程序时,输入工作正常,但这些值似乎对应用程序没有任何影响,即输入0不会导致程序退出。我的输出在代码下方。
在不同的机器上编译时什么会导致不同的行为,为什么这在我的机器上不起作用?
int main(int argc, char* argv[])
{
文件 *fpt;
字符字节;
long int where,move;
如果(argc != 2)
{
printf("用法:fileseek 文件名\n");
返回(0);
}
fpt = fopen(argv[1], "r");
如果(fpt == NULL)
{
printf("无法打开文件 %s 进行读取\n", argv[1]);
返回(0);
}
同时(1)
{
where = ftell(fpt);
fread(&byte,1,1,fpt);
fseek(fpt,-1,SEEK_CUR);
printf("Byte %d: %d (%c)\n", where, byte, byte);
printf("输入#bytes (+ or -) 移动,或 0 退出:");
scanf("%d", &move);
printf("移动:%d\n",移动);
如果(移动== 0)
休息;
fseek(fpt,move,SEEK_CUR);
}
fclose(fpt);
}
输出
jonathon@dev1:~/hoover/ch5/build$ ./fileseek text.txt
Byte 0: …Run Code Online (Sandbox Code Playgroud)