我的目标是在命令行中读入我希望观察信息的类的名称.当我在运行时之前知道类名时,我没有问题.我似乎无法管理的是如何基于字符串输入创建类对象.
public class Tester {
static void methodInfo2(Object obj) throws ClassNotFoundException {
//some stuff
System.out.print("Test!");
}
public static void main (String args[]) throws ClassNotFoundException{
String className = args[0];
System.out.println("Class: "+className);
//myclass2 mc = new myclass2();
//Class c = mc.getClass();
Class argClass = Class.forName(className);
try {
methodInfo2(argClass);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
}
Run Code Online (Sandbox Code Playgroud)
main方法中的2个注释掉的行显示了我在编译之前知道类名的过去所做的事情.以下未注释的行显示了我认为应该工作的内容,但是我收到了ClassNotFoundException.这个课肯定存在,所以我不确定我遇到了什么问题.
我在java文件的活动中创建了一个ListView.对于这个LIstView,我调用android.R.layout.simple_list_item_1布局视图,这是我自己没有创建的默认布局.我想创建一个自定义布局来代替simple_list_item_1,但我不想从头开始.如何找到此默认布局,以便对其进行轻微编辑?我不想从头开始的原因是因为我真正想要的是使文本大小更小.如果可以在不编辑文件的情况下(而不是以编程方式),那么答案也可以.谢谢!
我正在使用Java反射的基础知识并观察类方法的信息.我需要获得一个匹配getMethod()函数描述的规范的方法.但是,当我这样做时,我得到一个NoSuchMethodException,我希望你能告诉我为什么我的实现是不正确的.
static void methodInfo2(String className) throws ClassNotFoundException,
NoSuchMethodException{
Class cls = null;
try{
cls = Class.forName(className);
} catch(ClassNotFoundException e){
e.printStackTrace();
}
System.out.println("Cls: "+cls);
Method method1 = cls.getMethod("test", null);
System.out.println("method1: "+method1);
}
Run Code Online (Sandbox Code Playgroud)
EDIT1:当我打印出"Cls:"+ cls时,输出为"Cls:class a8.myclass2".为什么它附加了类部分?(a8是正确的,所以不要担心)/ EDIT1
这是我用来从我的main函数读取类的函数,然后我想使用参数"test"和null得到getMethod(),其中"test"是方法的名称,null表示该方法没有参数.我正在读的课叫做myclass2,它在这里:
package a8;
public class myclass2 {
void test(){
//"takes no parameters"
//"returns bool"
//"name starts with test"
//return true;
}
}
Run Code Online (Sandbox Code Playgroud)
如您所见,该方法确实存在于类中.如果你能指出我的错误,我会非常感激.
我发现很难解释这个问题,所以我会发布代码并解释会发生什么,然后问如何让它做我想做的事情.首先,我在子进程中创建一个线程:
pid_t childpid = fork();
if(childpid == -1){
cout << "Failed to fork." << endl;
}
else if(childpid == 0){
//request threads
pthread_t p1, p2, p3;
struct arg_struct args1, args2, args3;
args1.name = "data Joe Smith";
args1.num_req = n;
args1.buff_size = b;
pthread_create(&p1, NULL, &mythreadfunc, (void *)&args1);
}
Run Code Online (Sandbox Code Playgroud)
这是struct arg_struct:
struct arg_struct{
string name;
int num_req;
int curr_value;
int buff_size;
};
Run Code Online (Sandbox Code Playgroud)
而且 mythreadfunc:
void *mythreadfunc(void *arguments){
struct arg_struct *args = (struct arg_struct *)arguments;
string local_name = args->name;
int …Run Code Online (Sandbox Code Playgroud) 请原谅我,我不熟悉一般的网页开发.我必须设置一个网页,使其默认高度针对使用1024px*768px显示的用户.如果页面的内容垂直大于完成此更改后提供的空间中的内容,则页面仍应垂直展开,以便可以显示文本.
这是我刚开始工作的实践项目的要求之一.我不确定我所做的是什么,甚至是如何测试的.我有:
<body onload="window.resizeTo(1024,768)"> ... </body>
Run Code Online (Sandbox Code Playgroud)
它是否正确?在测试时我看到我的屏幕上没有明显的变化.
我很想和c#和SQL一起工作,所以我和我一起工作.
我需要访问我的SQL数据库中的变量,以及已经正确实现的用户名.我使用以下语句查询数据库:
private const string _getUserByUsernameQuery = @"
SELECT
[User].[username]
FROM
[User] WITH (NOLOCK)
INNER JOIN [Company] WITH (NOLOCK)
ON [User].[companyId] = [Company].[id]
WHERE
[User].[username] = @username
AND [User].[password] = @password";
Run Code Online (Sandbox Code Playgroud)
然后连接到数据库并访问用户名:
using (SqlConnection connection = new SqlConnection(SQLConfiguration.ConnectionString))
{
SqlCommand command = new SqlCommand(_getUserByUsernameQuery, connection);
command.Parameters.AddWithValue("@username", username);
command.Parameters.AddWithValue("@password", password);
try
{
connection.Open();
using (SqlDataReader reader = command.ExecuteReader())
{
if (reader.Read())
{
Username = Convert.ToString(reader["username"]);
//CompanyId = Convert.ToString(reader["companyId"]);
lblUsername = Username;
//lblCompanyId = CompanyId;
Debug.WriteLine("Testing2::");
Debug.WriteLine(lblUsername);
//Debug.WriteLine(lblCompanyId);
}
}
}
catch …Run Code Online (Sandbox Code Playgroud)