将类定义为内部时,您是否将公共字段定义为内部字段?或者你把它们公之于众?我有一组使用公共/私有方法的类,我决定将其设置为内部.现在,我应该将类的修饰符更改为内部并将其余的方法/属性保持原样(公共/私有)或将它们切换为(内部/私有)?
我没有看到将其改为内部的重点,如果由于某种原因后来我想将它们重新设置为公开,那么它将需要做很多工作才能将它们重新公之于众.
还有其他想法吗?
我正在使用一个代码来列出我设备中的所有图像......我正试图弄清楚如何仅从特定文件夹获取图像,而不是所有图像.这是我正在使用的代码:
ArrayList<Bitmap> images = new ArrayList<Bitmap>();
String[] projection = {MediaStore.Images.Thumbnails.DATA};
Uri uri = Uri.parse("content://media/external/images/media");
cursor = managedQuery( uri, projection, null, null, null);
//cursor = managedQuery( MediaStore.Images.Media.EXTERNAL_CONTENT_URI, projection, null, null, null);
Log.i("MediaStore.Images.Media.EXTERNAL_CONTENT_URI", "MediaStore.Images.Media.EXTERNAL_CONTENT_URI: " + MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
if(cursor.getCount()==0){
Log.i("No Cards","No Cards");
cursor.close();
} else if(cursor.getCount()>0){
for(cursor.moveToFirst(); cursor.moveToNext(); cursor.isAfterLast()){
int columnIndex = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
String imagePath = cursor.getString(columnIndex);
Log.i("imagePath", "imagePath: " + imagePath);
Bitmap b = BitmapFactory.decodeFile("/Stampii" + imagePath, null);
images.add(b);
}
}
Run Code Online (Sandbox Code Playgroud)
我想要做的是从imagePath: /mnt/sdcard/Stampii/MediaCategory-251.jpgStampii文件夹中获取图像,但我无法理解如何输入该文件夹的正确路径.我已经尝试过了:
Uri uri = Uri.parse("content://media/external/images/media/mnt/sdcard/Stampii");
Run Code Online (Sandbox Code Playgroud)
有解决方案吗
嘿,我有这个代码,当您单击第一个按钮时,应该从sql server保存文件,然后在按下第二个按钮时显示它.第一个按钮似乎工作,但第二个按钮导致它崩溃在这里是我的代码
public class MainActivity extends Activity {
/** Called when the activity is first created. */
String result = "";
InputStream is = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button saveFile = (Button) findViewById(R.id.downloadBtn);
saveFile.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
returnJson();
}
});
Button showFile = (Button) findViewById(R.id.showBtn);
showFile.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
TextView showText = (TextView) findViewById(R.id.showView);
String FILENAME = "Story_One";
String showStoryNames = "";
FileInputStream fis = …Run Code Online (Sandbox Code Playgroud) 我希望计算从Java中特定时间开始的毫秒数.
它System.currentTimeMillis();用于开始时间的经典方式,然后再使用前一个来获取经过的时间.我希望做类似的事情,但不要依赖系统时间.
如果我依赖系统时间,程序的用户可以操纵系统时钟来破解程序.
我尝试使用类似于以下的代码:
int elapsed = 0;
while (true) {
Thread.sleep(10);
elapsed += 10;
}
Run Code Online (Sandbox Code Playgroud)
这是有效的,但是在计算机滞后然后锁定一两秒的情况下,它不太可靠.
任何人的想法?
我有一个内部抽象类InternalClassBase和两个(也内部)类InternalClass1和InternalClass2,它从继承InternalClassBase.
我也有一个公共抽象类PublicClassBase和两个(也公开)班PublicClass1和PublicClass2,从继承PublicClassBase.
该PublicClassBase有一个受保护的成员XXX类型InternalClassBase,这样既PublicClass1和PublicClass2可以使用它.
这是我的代码:
internal abstract class InternalClassBase { }
internal class InternalClass1 : InternalClassBase { }
internal class InternalClass2 : InternalClassBase { }
public abstract class PublicClassBase
{
protected InternalClassBase XXX; // this is where the error happens
}
public class PublicClass1 : PublicClassBase { }
public class PublicClass2 : PublicClassBase { } …Run Code Online (Sandbox Code Playgroud) 我有一个现有的应用程序,我正在修改以使用Autofac Property Injection.似乎无论我使用哪种方法来注册具有属性的类型,除非它们具有公共setter,否则属性始终为null.使用其他IoC容器(例如Structuremap),可以将setter设置为内部范围,并使用InternalsVisibleTo程序集中的属性使其可用.限制客户端修改赋值似乎很好.
Autofac可以实现吗?或者在处理属性注入时是否有另一种方法来保证分配安全?
我尝试过使用反射PropertiesAutoWired()以及.WithParameter()从我的WebApi Global.asax中解析- 指定要设置的特定参数,但没有成功作为内部setter.
[assembly: InternalsVisibleTo("MyWebAPI.dll")]
[assembly: InternalsVisibleTo("Autofac.dll")]
[assembly: InternalsVisibleTo("Autofac.Configuration.dll")]
namespace My.Namespace
{
public class BaseContext
{
public MyPublicClass _dbHelper { get; internal set; }
public BaseContext()
{
}
protected string DbConnectionString
{
get
{
return _dbHelper.DbConn; //<-Always null unless setter is public
}
}
}
}
Run Code Online (Sandbox Code Playgroud) 只是一个简单的问题:我只希望我的集会中有一类是公开的,而外界看不到任何其他东西.我只是将所有其他类的方法和属性设置为内部?这甚至是一个好方法吗?
我正在构建一个具有一些基本功能的DLL.长话短说,我正在制作一些静态类供开发者使用.这些类使用其他一些做脏工作的类,我将其标记为内部,因为我不希望人们访问它们.
问题是:如果我将一个类声明为内部类,那么其成员的访问级别是什么?
我必须将其所有成员标记为内部,否则它们会自动标记为内部成员?
这是一个好2小时,我正在和谷歌搜索在搜索计算器,我努力寻找一个清晰而直接的答案不包括1000揣测,技术不太可能hypotesis和无用的装饰...
MSDN像往常一样令人困惑(从未在msdn上找到明确的答案).
从我在这里可以阅读http://msdn.microsoft.com/en-us/library/ms173121.aspx我想无论你如何设置类访问级别,他的所有成员都将是私有的(方法,变量等等)上).
救命,我不知道
假设我在包中有一个MyType带私有方法的类型.我还有一个目录,我想在那里存储我的包的测试.这是看起来像:(mt *MyType) private()mypackageteststests/mypackage_test.go
package mypackage_test
import (
"testing"
"myproj/mypackage"
)
func TestPrivate(t *testing.T) {
// Some test code
}
Run Code Online (Sandbox Code Playgroud)
但是,当我运行时,go test我得到了cannot refer to unexported field or method my package.(*MyType)."".private)错误.我已经google了一下,发现从小写开始的函数不能在他们自己的包之外看到(这似乎是真的,因为大写函数可以从测试中自由调用).
我还读到了某个地方,添加<...>_internal_test.go到测试文件可以解决我的问题,如this(tests/mypackage_internal_test.go):
package mypackage
import (
"testing"
)
func TestPrivate(t *testing.T) {
mt := &MyType{}
// Some test code
}
Run Code Online (Sandbox Code Playgroud)
但有了这个,我才得到undefined: MyType.所以,我的问题是:我如何测试内部/私有方法?
我希望能够使用Android的内部存储.我找到了一些代码片段,如:
string path = Application.Context.FilesDir.Path;
var filePath = Path.Combine(path, "test.txt");
System.IO.File.WriteAllText(filePath, "Hello World");
Run Code Online (Sandbox Code Playgroud)
但我无法弄清楚应用程序在这里.
对于那个或不同的观点有什么解决方案吗?谢谢 :)