java mono是什么,让我们一起了解一下?
Mono是包含0或者1个元素的异步序列。该序列中同样可以包含与Flux相同的三种类型的消息通知,Flux和Mono之间可以进行转换,对一个Flux序列进行计数操作,得到的结果是一个 Mono
如何通过Mono静态方法创建?
1、empty():创建一个不包含任何元素,只发布结束消息的序列。
2、just():可以指定序列中包含的全部元素。创建出来的 Mono序列在发布这些元素之后会自动结束。
3、justOrEmpty():从一个 Optional 对象或可能为 null 的对象中创建 Mono。只有 Optional 对象中包含值或对象不为 null 时,Mono 序列才产生对应的元素。
4、error(Throwable error):创建一个只包含错误消息的序列。
5、never():创建一个不包含任何消息通知的序列。
6、fromCallable()、fromCompletionStage()、fromFuture()、fromRunnable()和 fromSupplier():分别从 Callable、CompletionStage、CompletableFuture、Runnable 和 Supplier 中创建 Mono。
7、delay(Duration duration)和 delayMillis(long duration):创建一个 Mono 序列,在指定的延迟时间之后,产生数字 0 作为唯一值。
实战操作,示例代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Android.App;
using Android.Content;
using Android.OS;
using Android.Runtime;
using Android.Views;
using Android.Widget;
using Java.Util;
namespace AndroidHotelServiceTest
{
[Activity(Label = "My Activity")]
public class ActivityCalendar : Activity
{
protected override Dialog OnCreateDialog(int id)
{
if (id == 1)
{
return new DatePickerDialog(this, new DDialogLisetener(this), 2013, 11, 11);
}
return base.OnCreateDialog(0);
}
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
// Create your application here
SetContentView(Resource.Layout.CalendarView);
Button button = FindViewById(Resource.Id.btClose);
button.Click += delegate
{
Intent intent = new Intent();
intent.SetClass(this, typeof(ActivityHotel));
StartActivity(intent);
};
ShowDialog(1);
}
}
public class DDialogLisetener : DatePickerDialog.IOnDateSetListener
{
private Context _context;
public DDialogLisetener(Context context)
{
_context = context;
}
public void OnDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth)
{
String sDayOfWeek = getDayOfWeek(year, monthOfYear, dayOfMonth);
//Toast.makeText(CreateParty.this, "sdf", Toast.LENGTH_LONG).show();
int m_nYear = year;
int m_nMonth = monthOfYear + 1;
int m_nDay = dayOfMonth;
Toast.MakeText(_context, "ddd", ToastLength.Long).Show();
Toast.MakeText(_context, m_nYear + "年" + m_nMonth + "月" + m_nDay + "日 ", ToastLength.Long).Show();
}
private string getDayOfWeek(int tmpYear, int tmpMonth, int tmpDay)
{
String myWeek = null;
String sYear = tmpYear.ToString();
// 取年的后两位
String sYearTwo = sYear.Substring(sYear.Length - 2);
int y = tmpYear;
int m = tmpMonth + 1;
int c = 20;
int d = tmpDay;
int w = (y + (y / 4) + (c / 4) - 2 * c
+ (26 * (m + 1) / 10) + d - 1) % 7;
switch (w)
{
case 0:
myWeek = "日";
break;
case 1:
myWeek = "一";
break;
case 2:
myWeek = "二";
break;
case 3:
myWeek = "三";
break;
case 4:
myWeek = "四";
break;
case 5:
myWeek = "五";
break;
case 6:
myWeek = "六";
break;
default:
break;
}
return myWeek;
}
public void Dispose()
{
this.Dispose();
}
public IntPtr Handle
{
get { return IntPtr.Zero; }
}
}
}以上就是小编今天的分享了,希望可以帮助到大家。