小编Non*_*ter的帖子

带有内部类的newInstance()

我一直在研究一种实例化方法,它允许我将各种类似的类打包到一个外部类中.然后,我可以通过将该类型的名称传递给构造函数来实例化每个唯一的类类型.经过大量的研究和错误,这就是我想出的.我留下了一个错误,以证明我的问题.

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)

java reflection instantiation inner-classes

11
推荐指数
2
解决办法
5070
查看次数

如何遍历所有SQL表?

我们有一个软件不会删除我们不再需要的条目.为了了解在我们的服务器中浪费了多少数据并准备进行大型清理操作,我试图遍历所有表并拉出标记为删除的记录.这就是我正在使用的:

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一起引入时,只能在选择列表中指定一个表达式. …

sql t-sql sql-server loops

11
推荐指数
3
解决办法
3万
查看次数

图DB中的条件关系

图模型如何处理条件关系,如:

(Alice -[Dates]-> Bob)  
Where [Dates] exists IF and ONLY IF 
(Bob -[Owns]-> Ferrari) is true
Run Code Online (Sandbox Code Playgroud)

除了查询之外,我想知道数据库引擎是否根据条件应用关系,或者是否需要在应用程序中管理这种关系.

neo4j relationships graph-databases arangodb

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

删除重复的可见行

我试图使用以下VBA代码做两件事.

  1. 计算筛选的工作表中唯一可见行的数量.
  2. 删除重复的行

至今:

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)

excel vba filter excel-vba

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

应用程序在不同机器上的行为不同

我正在学习流并从教科书中复制了以下应用程序。当我的朋友在他的 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)

c stream

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